From: Carlos Garcia Campos <carlosgc@gnome.org>
Date: Mon, 12 Jul 2010 18:12:30 +0000 (+0200)
Subject: [shell] Optimize ev_application_has_window()
X-Git-Tag: EVINCE_2_31_5~4
X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=df0507d95502ee017b49ae3e19f75cfe64f2b04b;p=evince.git

[shell] Optimize ev_application_has_window()
---

diff --git a/shell/ev-application.c b/shell/ev-application.c
index ed4fb194..45dd9cdc 100644
--- a/shell/ev-application.c
+++ b/shell/ev-application.c
@@ -1036,10 +1036,17 @@ ev_application_get_dbus_connection (EvApplication *application)
 gboolean
 ev_application_has_window (EvApplication *application)
 {
-	GList   *windows = ev_application_get_windows (application);
-	gboolean retval = windows != NULL;
+	GList    *l, *toplevels;
+	gboolean  retval = FALSE;
 
-	g_list_free (windows);
+	toplevels = gtk_window_list_toplevels ();
+
+	for (l = toplevels; l != NULL && !retval; l = l->next) {
+		if (EV_IS_WINDOW (l->data))
+			retval = TRUE;
+	}
+
+	g_list_free (toplevels);
 
 	return retval;
 }