1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
From: Robert Carr <racarr@canonical.com>
Date: Wed, 30 Nov 2011 00:25:29 +0100
Subject: Do not allow devices in an offscreen hierarchy to take grabs.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=658563
Bug: https://gitlab.gnome.org/GNOME/gtk/issues/368
Bug-Ubuntu: https://launchpad.net/bugs/804009
Forwarded: yes
---
gtk/gtkmain.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 6148489..7cd685c 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -2327,9 +2327,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);
|