32 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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);
 | 
