forked from AuroraMiddleware/gtk
gtktext: Claim drag gesture after an actual selection change
This way, the drag gesture lets the click gesture ::release handler happen if there was no actual changes to the selected text (i.e. too short drags). This matches the ::release handler behavior match the situations in which the OSK was being invoked by the wayland GtkIMContext.
This commit is contained in:
parent
e3b0d57ce7
commit
76d80f7544
@ -3051,8 +3051,7 @@ gtk_text_drag_gesture_update (GtkGestureDrag *gesture,
|
|||||||
GdkDevice *source;
|
GdkDevice *source;
|
||||||
guint length;
|
guint length;
|
||||||
int tmp_pos;
|
int tmp_pos;
|
||||||
|
int pos, bound;
|
||||||
gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
|
|
||||||
|
|
||||||
length = gtk_entry_buffer_get_length (get_buffer (self));
|
length = gtk_entry_buffer_get_length (get_buffer (self));
|
||||||
|
|
||||||
@ -3070,7 +3069,6 @@ gtk_text_drag_gesture_update (GtkGestureDrag *gesture,
|
|||||||
{
|
{
|
||||||
int min, max;
|
int min, max;
|
||||||
int old_min, old_max;
|
int old_min, old_max;
|
||||||
int pos, bound;
|
|
||||||
|
|
||||||
min = gtk_text_move_backward_word (self, tmp_pos, TRUE);
|
min = gtk_text_move_backward_word (self, tmp_pos, TRUE);
|
||||||
max = gtk_text_move_forward_word (self, tmp_pos, TRUE);
|
max = gtk_text_move_forward_word (self, tmp_pos, TRUE);
|
||||||
@ -3101,11 +3099,17 @@ gtk_text_drag_gesture_update (GtkGestureDrag *gesture,
|
|||||||
if (priv->current_pos != max)
|
if (priv->current_pos != max)
|
||||||
pos = min;
|
pos = min;
|
||||||
}
|
}
|
||||||
|
|
||||||
gtk_text_set_positions (self, pos, bound);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
gtk_text_set_positions (self, tmp_pos, -1);
|
{
|
||||||
|
pos = tmp_pos;
|
||||||
|
bound = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (pos != priv->current_pos)
|
||||||
|
gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
|
||||||
|
|
||||||
|
gtk_text_set_positions (self, pos, bound);
|
||||||
|
|
||||||
/* Update touch handles' position */
|
/* Update touch handles' position */
|
||||||
if (gtk_simulate_touchscreen () ||
|
if (gtk_simulate_touchscreen () ||
|
||||||
|
Loading…
Reference in New Issue
Block a user