diff options
Diffstat (limited to 'chrome/common/gtk_util.cc')
-rw-r--r-- | chrome/common/gtk_util.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/chrome/common/gtk_util.cc b/chrome/common/gtk_util.cc index 4c9f052..f89d5a8 100644 --- a/chrome/common/gtk_util.cc +++ b/chrome/common/gtk_util.cc @@ -216,10 +216,15 @@ bool IsScreenComposited() { return gdk_screen_is_composited(screen) == TRUE; } -void EnumerateChildWindows(EnumerateWindowsDelegate* delegate) { +void EnumerateTopLevelWindows(x11_util::EnumerateWindowsDelegate* delegate) { GdkScreen* screen = gdk_screen_get_default(); GList* stack = gdk_screen_get_window_stack(screen); - DCHECK(stack); + if (!stack) { + // Window Manager doesn't support _NET_CLIENT_LIST_STACKING, so fall back + // to old school enumeration of all X windows. + x11_util::EnumerateAllWindows(delegate); + return; + } for (GList* iter = g_list_last(stack); iter; iter = iter->prev) { GdkWindow* window = static_cast<GdkWindow*>(iter->data); |