diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-22 20:34:35 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-06-22 20:34:35 +0000 |
commit | 5a639de2090282a219922cc5799116919320cb18 (patch) | |
tree | 214ba732b21b34cda0b62bffec556d39dfb73ca6 /chrome/common/gtk_util.cc | |
parent | 8d1523ab7ad36c8a4f5c9bffd110caeffcdc04be (diff) | |
download | chromium_src-5a639de2090282a219922cc5799116919320cb18.zip chromium_src-5a639de2090282a219922cc5799116919320cb18.tar.gz chromium_src-5a639de2090282a219922cc5799116919320cb18.tar.bz2 |
Revert to enumerating all X windows if the Window Manager doesn't support _NET_CLIENT_LIST_STACKING.
BUG=14004
TEST=Drag tabs in and out of tabstrip in xmonad window manager.
Review URL: http://codereview.chromium.org/141061
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18949 0039d316-1c4b-4281-b951-d872f2087c98
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); |