aboutsummaryrefslogtreecommitdiffstats
path: root/e-util
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@gnome-db.org>2011-11-14 20:08:57 +0800
committerRodrigo Moya <rodrigo@gnome-db.org>2011-11-14 20:08:57 +0800
commit7ab5ae3fc72516cceeb09a48bc5a39f7b57933de (patch)
treef1d1afbfa9d8c97dc691a2d241c9ec368fdf67d3 /e-util
parentcda52538315c481bc3b11ff2db40f7165113d1ab (diff)
parentc4308051159a37f16521b881f59259861998f4ae (diff)
downloadgsoc2013-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.c29
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.
*