aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table
diff options
context:
space:
mode:
Diffstat (limited to 'widgets/table')
-rw-r--r--widgets/table/e-table-field-chooser-dialog.h1
-rw-r--r--widgets/table/e-table-field-chooser.c2
-rw-r--r--widgets/table/e-table.c25
-rw-r--r--widgets/table/e-table.h2
4 files changed, 29 insertions, 1 deletions
diff --git a/widgets/table/e-table-field-chooser-dialog.h b/widgets/table/e-table-field-chooser-dialog.h
index ec151850f0..1cd7cae30c 100644
--- a/widgets/table/e-table-field-chooser-dialog.h
+++ b/widgets/table/e-table-field-chooser-dialog.h
@@ -22,7 +22,6 @@
#define __E_TABLE_FIELD_CHOOSER_DIALOG_H__
#include <gnome.h>
-#include <glade/glade.h>
#include <gal/e-table/e-table-field-chooser.h>
#include <gal/e-table/e-table-header.h>
diff --git a/widgets/table/e-table-field-chooser.c b/widgets/table/e-table-field-chooser.c
index 52db886cda..db43deb1a0 100644
--- a/widgets/table/e-table-field-chooser.c
+++ b/widgets/table/e-table-field-chooser.c
@@ -74,6 +74,8 @@ e_table_field_chooser_class_init (ETableFieldChooserClass *klass)
object_class = (GtkObjectClass*) klass;
vbox_class = (GtkVBoxClass *) klass;
+ glade_gnome_init();
+
parent_class = gtk_type_class (gtk_vbox_get_type ());
object_class->set_arg = e_table_field_chooser_set_arg;
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c
index 6a9b721547..0a02f86930 100644
--- a/widgets/table/e-table.c
+++ b/widgets/table/e-table.c
@@ -265,6 +265,10 @@ table_canvas_reflow_idle (ETable *e_table)
gnome_canvas_set_scroll_region (
GNOME_CANVAS (e_table->table_canvas),
0, 0, width - 1, height - 1);
+ gtk_object_set (GTK_OBJECT (e_table->white_item),
+ "x2", width,
+ "y2", height,
+ NULL);
e_table->reflow_idle_id = 0;
return FALSE;
}
@@ -274,7 +278,13 @@ table_canvas_size_allocate (GtkWidget *widget, GtkAllocation *alloc,
ETable *e_table)
{
gdouble width;
+ gdouble height;
+
width = alloc->width;
+ gtk_object_get (GTK_OBJECT (e_table->canvas_vbox),
+ "height", &height,
+ NULL);
+ height = MAX ((int)height, alloc->height);
gtk_object_set (GTK_OBJECT (e_table->canvas_vbox),
"width", width,
@@ -282,6 +292,10 @@ table_canvas_size_allocate (GtkWidget *widget, GtkAllocation *alloc,
gtk_object_set (GTK_OBJECT (e_table->header),
"width", width,
NULL);
+ gtk_object_set (GTK_OBJECT (e_table->white_item),
+ "x2", width,
+ "y2", height,
+ NULL);
if (e_table->reflow_idle_id)
g_source_remove(e_table->reflow_idle_id);
table_canvas_reflow_idle(e_table);
@@ -430,6 +444,9 @@ changed_idle (gpointer data)
gtk_object_set (GTK_OBJECT (et->canvas_vbox),
"width", (double) GTK_WIDGET (et->table_canvas)->allocation.width,
NULL);
+
+ if (GTK_WIDGET_REALIZED(et->table_canvas))
+ table_canvas_size_allocate (GTK_WIDGET(et->table_canvas), &GTK_WIDGET(et->table_canvas)->allocation, et);
}
et->need_rebuild = 0;
@@ -524,6 +541,14 @@ e_table_setup_table (ETable *e_table, ETableHeader *full_header, ETableHeader *h
gtk_widget_show (GTK_WIDGET (e_table->table_canvas));
+ e_table->white_item = gnome_canvas_item_new(gnome_canvas_root(e_table->table_canvas),
+ gnome_canvas_rect_get_type(),
+ "x1", (double) 0,
+ "y1", (double) 0,
+ "x2", (double) 100,
+ "y2", (double) 100,
+ "fill_color", "white",
+ NULL);
e_table->canvas_vbox = gnome_canvas_item_new(gnome_canvas_root(e_table->table_canvas),
e_canvas_vbox_get_type(),
"spacing", 10.0,
diff --git a/widgets/table/e-table.h b/widgets/table/e-table.h
index 717272309e..e23939e746 100644
--- a/widgets/table/e-table.h
+++ b/widgets/table/e-table.h
@@ -63,6 +63,8 @@ typedef struct {
GnomeCanvasItem *header_item, *root;
+ GnomeCanvasItem *white_item;
+
gint length_threshold;
gint rebuild_idle_id;