diff options
Diffstat (limited to 'modules/calendar/e-cal-shell-view-actions.c')
-rw-r--r-- | modules/calendar/e-cal-shell-view-actions.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/modules/calendar/e-cal-shell-view-actions.c b/modules/calendar/e-cal-shell-view-actions.c index b5609aa233..339faaa091 100644 --- a/modules/calendar/e-cal-shell-view-actions.c +++ b/modules/calendar/e-cal-shell-view-actions.c @@ -1202,13 +1202,18 @@ quit_calendar_cb (GtkAction *action, { EShellView *shell_view; EShellWindow *shell_window; - EShell *shell; + GdkEvent *event; shell_view = E_SHELL_VIEW (cal_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); + + /* Synthesize a delete_event on this window. */ + event = gdk_event_new (GDK_DELETE); + event->any.window = g_object_ref (((GtkWidget *) shell_window)->window); + event->any.send_event = TRUE; + gtk_main_do_event (event); + gdk_event_free (event); - shell = e_shell_window_get_shell (shell_window); - e_shell_quit (shell); } static void |