File: 017_no_offscreen_device_grabbing.patch

package info (click to toggle)
gtk%2B3.0 3.24.49-3
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 181,504 kB
  • sloc: ansic: 669,492; xml: 8,780; javascript: 6,630; python: 1,322; sh: 674; perl: 370; makefile: 212; cpp: 34
file content (31 lines) | stat: -rw-r--r-- 1,034 bytes parent folder | download | duplicates (2)
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);