Do not allow devices in an offscreen hierarchy to take grabs.
authorRobert Carr <racarr@canonical.com>
Tue, 29 Nov 2011 23:25:29 +0000 (00:25 +0100)
committerSimon McVittie <smcv@debian.org>
Wed, 27 Jun 2018 08:55:28 +0000 (09:55 +0100)
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=658563
Bug-Ubuntu: https://launchpad.net/bugs/804009
Forwarded: yes

Gbp-Pq: Name 017_no_offscreen_device_grabbing.patch

gtk/gtkmain.c

index 61d15e8520b97abb602568fbc3ae68f87890da92..3ee7a80503b61e2a2f9227c011d067b054760fb7 100644 (file)
@@ -2321,9 +2321,14 @@ gtk_device_grab_add (GtkWidget *widget,
 {
   GtkWindowGroup *group;
   GtkWidget *old_grab_widget;
+  GdkWindow *toplevel;
 
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (GDK_IS_DEVICE (device));
+  
+  toplevel = gdk_window_get_toplevel (gtk_widget_get_window (widget));
+  if (toplevel && gdk_window_get_window_type (toplevel) == GDK_WINDOW_OFFSCREEN)
+    return;
 
   group = gtk_main_get_window_group (widget);
   old_grab_widget = gtk_window_group_get_current_device_grab (group, device);