diff options
author | Alexander Mikhaylenko <alexm@gnome.org> | 2020-12-28 19:41:30 +0500 |
---|---|---|
committer | Alexander Mikhaylenko <alexm@gnome.org> | 2021-01-19 12:36:32 +0500 |
commit | 5968b10b0b140530ded1689d5d0ee04dbf784afd (patch) | |
tree | 86384b5cd2676d409b277f001b33c661f3f91cd7 | |
parent | e6f0103940e2dbec15fb46138f936ab7400b80f8 (diff) | |
download | gtk+-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.c | 12 |
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; |