summaryrefslogtreecommitdiff
path: root/src/nautilus-list-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-list-view.c')
-rw-r--r--src/nautilus-list-view.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c
index 787090851..825a3154d 100644
--- a/src/nautilus-list-view.c
+++ b/src/nautilus-list-view.c
@@ -872,23 +872,31 @@ on_tree_view_multi_press_gesture_released (GtkGestureMultiPress *gesture,
{
NautilusListView *view;
guint button;
- GdkEventSequence *sequence;
- const GdkEvent *event;
view = NAUTILUS_LIST_VIEW (callback_data);
button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture));
-
if (button != view->details->drag_button)
{
return;
}
- sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
- event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence);
-
view->details->drag_button = 0;
if (!view->details->drag_started && !view->details->ignore_button_release)
{
+ GdkEventSequence *sequence;
+ const GdkEvent *event;
+
+ sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture));
+ event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence);
+ /* Typically will only happen with GTK+ <= 3.22.30 and <= 3.93.0,
+ * where ::released is emitted after ::cancel, but can’t hurt to guard
+ * against it anyway.
+ */
+ if (event == NULL)
+ {
+ return;
+ }
+
nautilus_list_view_did_not_drag (view, event);
}
}