summaryrefslogtreecommitdiff
path: root/gtk/gtkpaned.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2017-12-08 21:09:24 -0500
committerMatthias Clasen <mclasen@redhat.com>2017-12-08 21:09:24 -0500
commite7ed7c1913f9eb9c9dd214f501acad54e80ea36b (patch)
tree470db2da834dc24a53021767c8d43e112cdcee8a /gtk/gtkpaned.c
parent29f36fed085d51bad16ec0e3f7ba5085bf9f82e8 (diff)
downloadgtk+-e7ed7c1913f9eb9c9dd214f501acad54e80ea36b.tar.gz
paned: Grab during the drag
This is necessary to ensure we get the right cursor.
Diffstat (limited to 'gtk/gtkpaned.c')
-rw-r--r--gtk/gtkpaned.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gtk/gtkpaned.c b/gtk/gtkpaned.c
index 04d8829b7f..1340f84b35 100644
--- a/gtk/gtkpaned.c
+++ b/gtk/gtkpaned.c
@@ -801,6 +801,9 @@ gesture_drag_begin_cb (GtkGestureDrag *gesture,
else
priv->drag_pos = start_y - priv->handle_pos.y;
+ paned->priv->panning = TRUE;
+ gtk_grab_add (GTK_WIDGET (paned));
+
gtk_gesture_set_state (GTK_GESTURE (gesture),
GTK_EVENT_SEQUENCE_CLAIMED);
}
@@ -819,8 +822,6 @@ gesture_drag_update_cb (GtkGestureDrag *gesture,
{
gdouble start_x, start_y;
- paned->priv->panning = TRUE;
-
gtk_gesture_drag_get_start_point (GTK_GESTURE_DRAG (gesture),
&start_x, &start_y);
update_drag (paned, start_x + offset_x, start_y + offset_y);
@@ -836,6 +837,7 @@ gesture_drag_end_cb (GtkGestureDrag *gesture,
if (!paned->priv->panning)
gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_DENIED);
+ gtk_grab_remove (GTK_WIDGET (paned));
paned->priv->panning = FALSE;
}