From 966b191e132fb8cfef039fb02a971e4e92c01dc1 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Wed, 13 Aug 2014 19:01:52 -0400 Subject: [PATCH] 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 file changed, 13 insertions(+) diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c index 41e6fb1b10..f26c3e0c3a 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