diff options
-rw-r--r-- | widgets/table/e-table.c | 26 | ||||
-rw-r--r-- | widgets/table/e-tree.c | 11 |
2 files changed, 29 insertions, 8 deletions
diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c index 065e821b4f..5b25880b63 100644 --- a/widgets/table/e-table.c +++ b/widgets/table/e-table.c @@ -63,7 +63,7 @@ #define e_table_item_leave_edit_(x) (e_table_item_leave_edit((x))) #endif -static GtkObjectClass *e_table_parent_class; +static GtkObjectClass *parent_class; enum { CURSOR_CHANGE, @@ -282,7 +282,16 @@ et_destroy (GtkObject *object) g_free(et->click_to_add_message); - (*e_table_parent_class->destroy)(object); + (*parent_class->destroy)(object); +} + +static void +et_unrealize (GtkWidget *widget) +{ + scroll_off (E_TABLE (widget)); + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + GTK_WIDGET_CLASS (parent_class)->unrealize (widget); } static void @@ -2732,19 +2741,20 @@ e_table_class_init (ETableClass *class) GtkWidgetClass *widget_class; GtkContainerClass *container_class; - object_class = (GtkObjectClass *) class; - widget_class = (GtkWidgetClass *) class; - container_class = (GtkContainerClass *) class; + object_class = (GtkObjectClass *) class; + widget_class = (GtkWidgetClass *) class; + container_class = (GtkContainerClass *) class; - e_table_parent_class = gtk_type_class (PARENT_TYPE); + parent_class = gtk_type_class (PARENT_TYPE); object_class->destroy = et_destroy; object_class->set_arg = et_set_arg; object_class->get_arg = et_get_arg; - widget_class->grab_focus = et_grab_focus; + widget_class->grab_focus = et_grab_focus; + widget_class->unrealize = et_unrealize; - container_class->focus = et_focus; + container_class->focus = et_focus; class->cursor_change = NULL; class->cursor_activated = NULL; diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c index 5e301aabf0..d007be9c19 100644 --- a/widgets/table/e-tree.c +++ b/widgets/table/e-tree.c @@ -375,6 +375,16 @@ et_destroy (GtkObject *object) } static void +et_unrealize (GtkWidget *widget) +{ + scroll_off (E_TREE (widget)); + hover_off (E_TREE (widget)); + + if (GTK_WIDGET_CLASS (parent_class)->unrealize) + GTK_WIDGET_CLASS (parent_class)->unrealize (widget); +} + +static void e_tree_init (GtkObject *object) { ETree *e_tree = E_TREE (object); @@ -2774,6 +2784,7 @@ e_tree_class_init (ETreeClass *class) object_class->get_arg = et_get_arg; widget_class->grab_focus = et_grab_focus; + widget_class->unrealize = et_unrealize; container_class->focus = et_focus; |