aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2002-11-15 07:08:29 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2002-11-15 07:08:29 +0800
commit334b42bda165b9cfd18f60f60742f850f9154c2e (patch)
treea053bcb55aba50c9034752bccac043f4272c29e7 /shell/e-shell.c
parenta68ff6bc2f3070cc852456c18d9edfecb31b183c (diff)
downloadgsoc2013-evolution-334b42bda165b9cfd18f60f60742f850f9154c2e.tar
gsoc2013-evolution-334b42bda165b9cfd18f60f60742f850f9154c2e.tar.gz
gsoc2013-evolution-334b42bda165b9cfd18f60f60742f850f9154c2e.tar.bz2
gsoc2013-evolution-334b42bda165b9cfd18f60f60742f850f9154c2e.tar.lz
gsoc2013-evolution-334b42bda165b9cfd18f60f60742f850f9154c2e.tar.xz
gsoc2013-evolution-334b42bda165b9cfd18f60f60742f850f9154c2e.tar.zst
gsoc2013-evolution-334b42bda165b9cfd18f60f60742f850f9154c2e.zip
Use bonobo_main_quit() instead of gtk_main_quit(). (shell_weak_notify):
* main.c (no_views_left_cb): Use bonobo_main_quit() instead of gtk_main_quit(). (shell_weak_notify): Likewise. (idle_cb): Likewise. * e-shell.c (notify_no_views_left_idle_cb): New idle function to emit the "no_views_left" signal. (view_weak_notify): Put it on the idle loop instead of firing the signal here. * e-task-widget.c (e_task_widget_construct): Ref/sink the GtkTooltips object. svn path=/trunk/; revision=18763
Diffstat (limited to 'shell/e-shell.c')
-rw-r--r--shell/e-shell.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 4acc386ae0..a02cc1e89b 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -956,6 +956,24 @@ view_delete_event_cb (GtkWidget *widget,
return ! e_shell_request_close_view (shell, E_SHELL_VIEW (widget));
}
+static gboolean
+notify_no_views_left_idle_cb (void *data)
+{
+ EShell *shell;
+
+ puts (__FUNCTION__);
+
+ shell = E_SHELL (data);
+
+ set_interactive (shell, FALSE);
+
+ bonobo_object_ref (BONOBO_OBJECT (shell));
+ g_signal_emit (shell, signals [NO_VIEWS_LEFT], 0);
+ bonobo_object_unref (BONOBO_OBJECT (shell));
+
+ return FALSE;
+}
+
static void
view_weak_notify (void *data,
GObject *where_the_object_was)
@@ -975,13 +993,8 @@ view_weak_notify (void *data,
shell->priv->views = g_list_remove (shell->priv->views, where_the_object_was);
- if (shell->priv->views == NULL) {
- set_interactive (shell, FALSE);
-
- bonobo_object_ref (BONOBO_OBJECT (shell));
- g_signal_emit (shell, signals [NO_VIEWS_LEFT], 0);
- bonobo_object_unref (BONOBO_OBJECT (shell));
- }
+ if (shell->priv->views == NULL)
+ g_idle_add (notify_no_views_left_idle_cb, shell);
}
static EShellView *