summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2015-08-04 15:54:40 +0200
committerCarlos Garnacho <carlosg@gnome.org>2015-08-04 17:59:01 +0200
commit69c9cb85e2dfb5169a7d3b71b4ef7e9203126a83 (patch)
tree01d1186e093756a1da6ba1ceb49d0e43eb76f899
parenta6ca56969e85d0f482f86d08abf48aa7ce54012a (diff)
downloadgtk+-69c9cb85e2dfb5169a7d3b71b4ef7e9203126a83.tar.gz
gtkwindow: bail out on WM operations in the presence of grabs
These operations will require a grab on the WM side, so we can spare the attempt from the WM to take a grab when we're certain it won't suceed. https://bugzilla.gnome.org/show_bug.cgi?id=752327
-rw-r--r--gtk/gtkwindow.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index fb420a14b9..4e96d6f712 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -1445,6 +1445,13 @@ multipress_gesture_pressed_cb (GtkGestureMultiPress *gesture,
region = get_active_region_type (window, (GdkEventAny*) event, x, y);
+ if (gdk_display_device_is_grabbed (gtk_widget_get_display (widget),
+ gtk_gesture_get_device (GTK_GESTURE (gesture))))
+ {
+ gtk_gesture_set_state (priv->drag_gesture, GTK_EVENT_SEQUENCE_DENIED);
+ return;
+ }
+
if (button == GDK_BUTTON_SECONDARY && region == GTK_WINDOW_REGION_TITLE)
{
if (gtk_window_titlebar_action (window, event, button, n_press))