From 167635647c6f1c6077cdb159755e5e15e1c50f82 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Mon, 12 Jul 2010 18:18:41 +0000 Subject: [shell] Flush DBus connection after emitting closed signal for the last window --- (limited to 'shell/ev-window.c') diff --git a/shell/ev-window.c b/shell/ev-window.c index 168ed67..c7e9c6d 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -6261,10 +6261,6 @@ ev_window_emit_closed (EvWindow *window) if (!connection) return; - /* TODO: figure out if this is the last window and use - * g_dbus_connection_flush_sync() to make sure the signal - * is emitted. - */ g_dbus_connection_emit_signal (connection, NULL, window->priv->dbus_object_path, @@ -6276,7 +6272,15 @@ ev_window_emit_closed (EvWindow *window) g_printerr ("Failed to emit DBus signal Closed: %s\n", error->message); g_error_free (error); + + return; } + + /* If this is the last window call g_dbus_connection_flush_sync() + * to make sure the signal is emitted. + */ + if (ev_application_get_n_windows (EV_APP) == 1) + g_dbus_connection_flush_sync (connection, NULL, NULL); } static void -- cgit v0.9.1