aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2011-08-19 14:56:13 +0800
committerRodrigo Moya <rodrigo@gnome-db.org>2011-09-14 20:08:51 +0800
commitaaef7549c7f5a5a498ee5875678b15afcb8fd7f6 (patch)
tree60249e6db849f7df00dd072eefb2692c00b2be26
parentbf8737afa1f632f64e10c671ea3a335237692879 (diff)
downloadgsoc2013-evolution-aaef7549c7f5a5a498ee5875678b15afcb8fd7f6.tar.gz
gsoc2013-evolution-aaef7549c7f5a5a498ee5875678b15afcb8fd7f6.tar.zst
gsoc2013-evolution-aaef7549c7f5a5a498ee5875678b15afcb8fd7f6.zip
Bug #651633 - Hidden task/memo sidebar always automagically re-appears
-rw-r--r--widgets/misc/e-paned.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/widgets/misc/e-paned.c b/widgets/misc/e-paned.c
index 1ddb83fdeb..b98dc1928d 100644
--- a/widgets/misc/e-paned.c
+++ b/widgets/misc/e-paned.c
@@ -240,6 +240,19 @@ paned_realize (GtkWidget *widget)
priv->toplevel_ready = TRUE;
}
+static gboolean
+paned_queue_resize_on_idle (gpointer user_data)
+{
+ GtkWidget *paned = user_data;
+
+ g_return_val_if_fail (paned != NULL, FALSE);
+
+ gtk_widget_queue_resize_no_redraw (paned);
+ g_object_unref (paned);
+
+ return FALSE;
+}
+
static void
paned_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
@@ -282,6 +295,12 @@ paned_size_allocate (GtkWidget *widget,
gtk_paned_set_position (GTK_PANED (paned), position);
paned->priv->sync_request = SYNC_REQUEST_NONE;
+
+ /* gtk_paned_set_position() calls queue_resize, which cannot
+ be called from size_allocate, thus call it on idle to take
+ the change in the effect.
+ */
+ g_idle_add (paned_queue_resize_on_idle, g_object_ref (paned));
}
static void