From c071c73ce0d173a10b15325a2fe33d073fd2e886 Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Tue, 5 Sep 2023 08:39:35 +0300 Subject: [PATCH] text: Respect focus-on-click property It does make sense to have GtkText not focus on click in some cases, such as when its editable property is set to false. Signed-off-by: Sergey Bugaev --- gtk/gtktext.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/gtk/gtktext.c b/gtk/gtktext.c index 147c8fa047..2d303f3765 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -2745,22 +2745,24 @@ gtk_text_click_gesture_pressed (GtkGestureClick *gesture, guint button; int tmp_pos; - button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)); - current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); - event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), current); - - x = gesture_get_current_point_in_layout (GTK_GESTURE_SINGLE (gesture), self); - y = widget_y; - gtk_text_reset_blink_time (self); - if (!gtk_widget_has_focus (widget)) { + if (!gtk_widget_get_focus_on_click (widget)) + return; priv->in_click = TRUE; gtk_widget_grab_focus (widget); gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); priv->in_click = FALSE; } + button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)); + current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); + event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), current); + + x = gesture_get_current_point_in_layout (GTK_GESTURE_SINGLE (gesture), self); + y = widget_y; + gtk_text_reset_blink_time (self); + tmp_pos = gtk_text_find_position (self, x); if (gdk_event_triggers_context_menu (event)) -- 2.30.2