Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-application.c
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2010-07-12 18:12:30 (GMT)
committer Carlos Garcia Campos <carlosgc@gnome.org>2010-07-12 18:12:30 (GMT)
commitdf0507d95502ee017b49ae3e19f75cfe64f2b04b (patch)
tree76e95cfea51194f21f082557cc4d813f7d4dcd93 /shell/ev-application.c
parentcb2b94df0d415021904d5f96c68447152a7bcf6b (diff)
[shell] Optimize ev_application_has_window()
Diffstat (limited to 'shell/ev-application.c')
-rw-r--r--shell/ev-application.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/shell/ev-application.c b/shell/ev-application.c
index ed4fb19..45dd9cd 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;
}