summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Mikhaylenko <alexm@gnome.org>2020-12-28 19:41:30 +0500
committerAlexander Mikhaylenko <alexm@gnome.org>2021-01-19 12:36:32 +0500
commit5968b10b0b140530ded1689d5d0ee04dbf784afd (patch)
tree86384b5cd2676d409b277f001b33c661f3f91cd7
parente6f0103940e2dbec15fb46138f936ab7400b80f8 (diff)
downloadgtk+-wip/exalm/activate.tar.gz
listitemwidget: Activate on release instead of presswip/exalm/activate
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
-rw-r--r--gtk/gtklistitemwidget.c12
1 files changed, 11 insertions, 1 deletions
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;