| Index: chrome/common/gtk_util.cc
|
| ===================================================================
|
| --- chrome/common/gtk_util.cc (revision 17916)
|
| +++ chrome/common/gtk_util.cc (working copy)
|
| @@ -5,6 +5,7 @@
|
| #include "chrome/common/gtk_util.h"
|
|
|
| #include <gtk/gtk.h>
|
| +#include <gdk/gdkx.h>
|
|
|
| #include "base/linux_util.h"
|
| #include "base/logging.h"
|
| @@ -164,4 +165,20 @@
|
| return gdk_screen_is_composited(screen) == TRUE;
|
| }
|
|
|
| +void EnumerateChildWindows(EnumerateWindowsDelegate* delegate) {
|
| + GdkScreen* screen = gdk_screen_get_default();
|
| + GList* stack = gdk_screen_get_window_stack(screen);
|
| + DCHECK(stack);
|
| +
|
| + for (GList* iter = g_list_last(stack); iter; iter = iter->prev) {
|
| + GdkWindow* window = static_cast<GdkWindow*>(iter->data);
|
| + XID xid = GDK_WINDOW_XID(window);
|
| + if (delegate->ShouldStopIterating(xid))
|
| + break;
|
| + }
|
| +
|
| + g_list_foreach(stack, (GFunc)g_object_unref, NULL);
|
| + g_list_free(stack);
|
| +}
|
| +
|
| } // namespace gtk_util
|
|
|