diff options
author | Carlos 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) |
commit | df0507d95502ee017b49ae3e19f75cfe64f2b04b (patch) | |
tree | 76e95cfea51194f21f082557cc4d813f7d4dcd93 | |
parent | cb2b94df0d415021904d5f96c68447152a7bcf6b (diff) |
[shell] Optimize ev_application_has_window()
-rw-r--r-- | shell/ev-application.c | 13 |
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; } |