mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-11 11:20:12 +00:00
entry: Check first whether the sequence is handled, fetch later the event
And always unset/hide the selection popover if unhandled, that means the sequence went grabbed/claimed somewhere else and cancelled here.
This commit is contained in:
parent
485da90a2e
commit
f54277204f
@ -4706,6 +4706,13 @@ gtk_entry_drag_gesture_end (GtkGestureDrag *gesture,
|
|||||||
if (priv->magnifier_popover)
|
if (priv->magnifier_popover)
|
||||||
gtk_widget_hide (priv->magnifier_popover);
|
gtk_widget_hide (priv->magnifier_popover);
|
||||||
|
|
||||||
|
/* Check whether the drag was cancelled rather than finished */
|
||||||
|
if (!gtk_gesture_handles_sequence (GTK_GESTURE (gesture), sequence))
|
||||||
|
{
|
||||||
|
gtk_entry_selection_bubble_popup_unset (entry);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence);
|
event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence);
|
||||||
source = gdk_event_get_source_device (event);
|
source = gdk_event_get_source_device (event);
|
||||||
is_touchscreen = (test_touchscreen ||
|
is_touchscreen = (test_touchscreen ||
|
||||||
@ -4717,10 +4724,6 @@ gtk_entry_drag_gesture_end (GtkGestureDrag *gesture,
|
|||||||
else if (is_touchscreen)
|
else if (is_touchscreen)
|
||||||
gtk_entry_selection_bubble_popup_set (entry);
|
gtk_entry_selection_bubble_popup_set (entry);
|
||||||
|
|
||||||
/* Check whether the drag was cancelled rather than finished */
|
|
||||||
if (!gtk_gesture_handles_sequence (GTK_GESTURE (gesture), sequence))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (in_drag)
|
if (in_drag)
|
||||||
{
|
{
|
||||||
gint tmp_pos = gtk_entry_find_position (entry, priv->drag_start_x);
|
gint tmp_pos = gtk_entry_find_position (entry, priv->drag_start_x);
|
||||||
|
Loading…
Reference in New Issue
Block a user