diff options
author | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-11-14 20:08:57 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-11-14 20:08:57 +0800 |
commit | 7ab5ae3fc72516cceeb09a48bc5a39f7b57933de (patch) | |
tree | f1d1afbfa9d8c97dc691a2d241c9ec368fdf67d3 /e-util | |
parent | cda52538315c481bc3b11ff2db40f7165113d1ab (diff) | |
parent | c4308051159a37f16521b881f59259861998f4ae (diff) | |
download | gsoc2013-evolution-7ab5ae3fc72516cceeb09a48bc5a39f7b57933de.tar gsoc2013-evolution-7ab5ae3fc72516cceeb09a48bc5a39f7b57933de.tar.gz gsoc2013-evolution-7ab5ae3fc72516cceeb09a48bc5a39f7b57933de.tar.bz2 gsoc2013-evolution-7ab5ae3fc72516cceeb09a48bc5a39f7b57933de.tar.lz gsoc2013-evolution-7ab5ae3fc72516cceeb09a48bc5a39f7b57933de.tar.xz gsoc2013-evolution-7ab5ae3fc72516cceeb09a48bc5a39f7b57933de.tar.zst gsoc2013-evolution-7ab5ae3fc72516cceeb09a48bc5a39f7b57933de.zip |
Merge branch 'master' into wip/gsettings
Diffstat (limited to 'e-util')
-rw-r--r-- | e-util/e-config.c | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/e-util/e-config.c b/e-util/e-config.c index a19bbafb3d..06117c2a9f 100644 --- a/e-util/e-config.c +++ b/e-util/e-config.c @@ -138,11 +138,11 @@ config_finalize (GObject *object) while (link != NULL) { struct _widget_node *node = link->data; - /* disconnect the gtk_widget_destroyed function from the widget */ + /* disconnect the ec_widget_destroyed function from the widget */ if (node->widget) g_signal_handlers_disconnect_matched ( node->widget, G_SIGNAL_MATCH_DATA, - 0, 0, NULL, NULL, &node->widget); + 0, 0, NULL, NULL, node); g_free (node); @@ -560,6 +560,16 @@ ec_assistant_forward (gint current_page, } static void +ec_widget_destroyed (GtkWidget *widget, + struct _widget_node *node) +{ + /* Use our own function instead of gtk_widget_destroyed() + * so it's easier to trap EConfig widgets in a debugger. */ + + node->widget = NULL; +} + +static void ec_rebuild (EConfig *emp) { EConfigPrivate *p = emp->priv; @@ -829,6 +839,7 @@ ec_rebuild (EConfig *emp) } else { gtk_assistant_prepend_page (GTK_ASSISTANT (assistant), page); } + gtk_assistant_set_page_type (GTK_ASSISTANT (assistant), page, item->type == E_CONFIG_PAGE ? GTK_ASSISTANT_PAGE_CONTENT : GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_title (GTK_ASSISTANT (assistant), page, translated_label); gtk_widget_show_all (page); @@ -860,7 +871,9 @@ ec_rebuild (EConfig *emp) sectionnode = NULL; wn->widget = page; if (page) - g_signal_connect (page, "destroy", G_CALLBACK(gtk_widget_destroyed), &wn->widget); + g_signal_connect ( + page, "destroy", + G_CALLBACK (ec_widget_destroyed), wn); break; case E_CONFIG_SECTION: case E_CONFIG_SECTION_TABLE: @@ -962,7 +975,9 @@ ec_rebuild (EConfig *emp) sectionno++; wn->widget = section; if (section) - g_signal_connect (section, "destroy", G_CALLBACK(gtk_widget_destroyed), &wn->widget); + g_signal_connect ( + section, "destroy", + G_CALLBACK (ec_widget_destroyed), wn); sectionnode = wn; break; case E_CONFIG_ITEM: @@ -1001,7 +1016,9 @@ ec_rebuild (EConfig *emp) wn->widget = w; if (w) { - g_signal_connect (w, "destroy", G_CALLBACK(gtk_widget_destroyed), &wn->widget); + g_signal_connect ( + w, "destroy", + G_CALLBACK (ec_widget_destroyed), wn); itemno++; if (gtk_widget_get_visible (w)) @@ -1431,7 +1448,7 @@ e_config_page_next (EConfig *ec, } /** - * e_config_page_next: + * e_config_page_prev: * @ec: an #EConfig * @pageid: The path of the page item. * |