[gtk+] gdkwayland-window: Don't map the grab transfer menu for GtkMenu



commit 966b191e132fb8cfef039fb02a971e4e92c01dc1
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Wed Aug 13 19:01:52 2014 -0400

    gdkwayland-window: Don't map the grab transfer menu for GtkMenu
    
    This is a bad idea in general, but it also means that the focus for a
    window drops when we pop up a menu, since the grab transfer menu exists.

 gdk/wayland/gdkwindow-wayland.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index 41e6fb1..f26c3e0 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -1031,12 +1031,25 @@ find_grab_input_seat (GdkWindow *window, GdkWindow *transient_for)
   return NULL;
 }
 
+static gboolean
+should_be_mapped (GdkWindow *window)
+{
+  /* Don't map crazy temp that GTK+ uses for internal X11 shenanigans. */
+  if (window->window_type == GDK_WINDOW_TEMP && window->x < 0 && window->y < 0)
+    return FALSE;
+
+  return TRUE;
+}
+
 static void
 gdk_wayland_window_map (GdkWindow *window)
 {
   GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
   GdkWindow *transient_for;
 
+  if (!should_be_mapped (window))
+    return;
+
   if (!impl->mapped && !impl->use_custom_surface)
     {
       /* Popup menus can appear without a transient parent, which means they


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]