If we click close enough between lines, and with the maximum distances applied
by GtkGestureClick we could jump between lines when handling double/triple
click for word/line selection.
Ensure that the whole operation stays in the same line and reset the
gesture/counter if we do move between lines, so we start from scratch in the
new line.
if (state & GDK_SHIFT_MASK)
extends = TRUE;
+ if (n_press > 1)
+ {
+ GtkTextBuffer *buffer;
+ GtkTextIter cur, ins;
+
+ buffer = get_buffer (text_view);
+ get_iter_from_gesture (text_view, GTK_GESTURE (gesture),
+ &cur, NULL, NULL);
+ gtk_text_buffer_get_iter_at_mark (buffer, &ins,
+ gtk_text_buffer_get_insert (buffer));
+
+ /* Reset count if double/triple clicking on a different line */
+ if (gtk_text_iter_get_line (&cur) !=
+ gtk_text_iter_get_line (&ins))
+ {
+ gtk_event_controller_reset (GTK_EVENT_CONTROLLER (gesture));
+ n_press = 1;
+ }
+ }
+
switch (n_press)
{
case 1: