[gtk/wip/carlosg/for-master: 5/6] gtk/textview: Defer touchscreen focus placing to drag end
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/carlosg/for-master: 5/6] gtk/textview: Defer touchscreen focus placing to drag end
- Date: Thu, 5 Nov 2020 20:49:11 +0000 (UTC)
commit f9813019a7037f6f5ae3eae0f72d7267344c6c13
Author: Carlos Garnacho <carlosg gnome org>
Date: Thu Nov 5 21:07:54 2020 +0100
gtk/textview: Defer touchscreen focus placing to drag end
With the scrolledwindow drag gesture not claiming the sequence immediately,
we end up placing the cursor (and undoing the previous selection) each time
we scroll.
There is already handling too short drags in ::drag-end, so let this code
handle touchscreens as well.
gtk/gtktextview.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index bf3a2b30e3..152238e2e2 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -5473,10 +5473,7 @@ gtk_text_view_click_gesture_pressed (GtkGestureClick *gesture,
gtk_text_view_selection_bubble_popup_unset (text_view);
if (is_touchscreen)
- {
- gtk_text_buffer_place_cursor (get_buffer (text_view), &iter);
- priv->handle_place_time = g_get_monotonic_time ();
- }
+ priv->handle_place_time = g_get_monotonic_time ();
else
gtk_text_view_start_selection_drag (text_view, &iter,
SELECT_CHARACTERS, extends);
@@ -7371,7 +7368,7 @@ gtk_text_view_drag_gesture_end (GtkGestureDrag *gesture,
is_touchscreen = gtk_simulate_touchscreen () ||
gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN;
- if (!is_touchscreen && clicked_in_selection &&
+ if ((is_touchscreen || clicked_in_selection) &&
!gtk_drag_check_threshold (GTK_WIDGET (text_view), start_x, start_y, x, y))
{
GtkTextIter iter;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]