From 5968b10b0b140530ded1689d5d0ee04dbf784afd Mon Sep 17 00:00:00 2001 From: Alexander Mikhaylenko Date: Mon, 28 Dec 2020 19:41:30 +0500 Subject: [PATCH] listitemwidget: Activate on release instead of press Single click activation should only be done on release and not on press, otherwise it breaks touch scrolling. Double-click activation still can be done on press. This matches the GtkListBox behavior as well. Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3345 --- gtk/gtklistitemwidget.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gtk/gtklistitemwidget.c b/gtk/gtklistitemwidget.c index abe6352688..09ac15d1bf 100644 --- a/gtk/gtklistitemwidget.c +++ b/gtk/gtklistitemwidget.c @@ -332,7 +332,7 @@ gtk_list_item_widget_click_gesture_pressed (GtkGestureClick *gesture, if (!priv->list_item || priv->list_item->activatable) { - if (n_press == 2 || priv->single_click_activate) + if (n_press == 2 && !priv->single_click_activate) { gtk_widget_activate_action (GTK_WIDGET (self), "list.activate-item", @@ -356,6 +356,16 @@ gtk_list_item_widget_click_gesture_released (GtkGestureClick *gesture, { GtkListItemWidgetPrivate *priv = gtk_list_item_widget_get_instance_private (self); + if (priv->single_click_activate) + { + gtk_widget_activate_action (GTK_WIDGET (self), + "list.activate-item", + "u", + priv->position); + + return; + } + if (!priv->list_item || priv->list_item->selectable) { GdkModifierType state;