summaryrefslogtreecommitdiffstats
path: root/chrome/common/gtk_util.cc
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-22 20:34:35 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-22 20:34:35 +0000
commit5a639de2090282a219922cc5799116919320cb18 (patch)
tree214ba732b21b34cda0b62bffec556d39dfb73ca6 /chrome/common/gtk_util.cc
parent8d1523ab7ad36c8a4f5c9bffd110caeffcdc04be (diff)
downloadchromium_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.cc9
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);