]> Pileus Git - ~andy/gtk/commitdiff
wayland: set the "transient inactive" flag on tooltip surfaces
authorThomas Wood <thomas.wood@intel.com>
Thu, 7 Feb 2013 11:27:25 +0000 (11:27 +0000)
committerThomas Wood <thomas.wood@intel.com>
Tue, 12 Feb 2013 15:30:56 +0000 (15:30 +0000)
This prevents the tooltip surfaces from taking the focus away from the
parent surface.

https://bugzilla.gnome.org/show_bug.cgi?id=693313

gdk/wayland/gdkwindow-wayland.c

index e533e9f15986984c03dc9ee466c549b8aabdcce9..5c8d6b6dc1d7a84632604280733bb681686abd25 100644 (file)
@@ -593,9 +593,16 @@ gdk_wayland_window_map (GdkWindow *window)
                                           _gdk_wayland_display_get_serial (wayland_display),
                                           parent->surface,
                                           window->x, window->y, 0);
-            } else {
-                wl_shell_surface_set_transient (impl->shell_surface, parent->surface,
-                                                window->x, window->y, 0);
+            }
+          else
+            {
+              guint32 flags = 0;
+
+              if (impl->hint == GDK_WINDOW_TYPE_HINT_TOOLTIP)
+                flags = WL_SHELL_SURFACE_TRANSIENT_INACTIVE;
+
+              wl_shell_surface_set_transient (impl->shell_surface, parent->surface,
+                                              window->x, window->y, flags);
             }
         }
       else