diff --git a/gtk/gtklistitemwidget.c b/gtk/gtklistitemwidget.c index f700269823..5c57d1b257 100644 --- a/gtk/gtklistitemwidget.c +++ b/gtk/gtklistitemwidget.c @@ -324,8 +324,6 @@ gtk_list_item_widget_click_gesture_pressed (GtkGestureClick *gesture, { GtkListItemWidgetPrivate *priv = gtk_list_item_widget_get_instance_private (self); GtkWidget *widget = GTK_WIDGET (self); - GtkWidget * parent = gtk_widget_get_parent (widget); - gboolean rubberband; if (priv->list_item && !priv->list_item->selectable && !priv->list_item->activatable) { @@ -333,29 +331,6 @@ gtk_list_item_widget_click_gesture_pressed (GtkGestureClick *gesture, return; } - if (GTK_IS_LIST_BASE (parent)) - rubberband = gtk_list_base_get_enable_rubberband (GTK_LIST_BASE (parent)); - else - rubberband = FALSE; - - if (!rubberband && (!priv->list_item || priv->list_item->selectable)) - { - GdkModifierType state; - GdkEvent *event; - gboolean extend, modify; - - event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), - gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture))); - state = gdk_event_get_modifier_state (event); - extend = (state & GDK_SHIFT_MASK) != 0; - modify = (state & GDK_CONTROL_MASK) != 0; - - gtk_widget_activate_action (GTK_WIDGET (self), - "list.select-item", - "(ubb)", - priv->position, modify, extend); - } - if (!priv->list_item || priv->list_item->activatable) { if (n_press == 2 || priv->single_click_activate) @@ -373,6 +348,36 @@ gtk_list_item_widget_click_gesture_pressed (GtkGestureClick *gesture, gtk_widget_grab_focus (widget); } +static void +gtk_list_item_widget_click_gesture_released (GtkGestureClick *gesture, + int n_press, + double x, + double y, + GtkListItemWidget *self) +{ + GtkListItemWidgetPrivate *priv = gtk_list_item_widget_get_instance_private (self); + + if (!priv->list_item || priv->list_item->selectable) + { + GdkModifierType state; + GdkEvent *event; + gboolean extend, modify; + + event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), + gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture))); + state = gdk_event_get_modifier_state (event); + extend = (state & GDK_SHIFT_MASK) != 0; + modify = (state & GDK_CONTROL_MASK) != 0; + + gtk_widget_activate_action (GTK_WIDGET (self), + "list.select-item", + "(ubb)", + priv->position, modify, extend); + } + + gtk_widget_unset_state_flags (GTK_WIDGET (self), GTK_STATE_FLAG_ACTIVE); +} + static void gtk_list_item_widget_enter_cb (GtkEventControllerFocus *controller, GtkListItemWidget *self) @@ -406,16 +411,6 @@ gtk_list_item_widget_hover_cb (GtkEventControllerMotion *controller, } } -static void -gtk_list_item_widget_click_gesture_released (GtkGestureClick *gesture, - int n_press, - double x, - double y, - GtkListItemWidget *self) -{ - gtk_widget_unset_state_flags (GTK_WIDGET (self), GTK_STATE_FLAG_ACTIVE); -} - static void gtk_list_item_widget_click_gesture_canceled (GtkGestureClick *gesture, GdkEventSequence *sequence,