[evince] [shell] Flush DBus connection after emitting closed signal for the last window



commit 167635647c6f1c6077cdb159755e5e15e1c50f82
Author: Carlos Garcia Campos <carlosgc gnome org>
Date:   Mon Jul 12 20:18:41 2010 +0200

    [shell] Flush DBus connection after emitting closed signal for the last window

 shell/ev-window.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)
---
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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]