mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-05 02:11:08 +00:00
Merge branch 'wip/carlosg/toggle-osk-sparingly-master' into 'master'
imwayland: Toggle OSK more sparingly Closes #1277 See merge request GNOME/gtk!571
This commit is contained in:
commit
58eb1c905a
@ -771,6 +771,8 @@ gtk_im_context_wayland_focus_in (GtkIMContext *context)
|
||||
if (!global->text_input)
|
||||
return;
|
||||
|
||||
if (self->gesture)
|
||||
gtk_event_controller_reset (GTK_EVENT_CONTROLLER (self->gesture));
|
||||
global->current = context;
|
||||
|
||||
if (global->focused)
|
||||
@ -806,9 +808,30 @@ gtk_im_context_wayland_set_cursor_location (GtkIMContext *context,
|
||||
GdkRectangle *rect)
|
||||
{
|
||||
GtkIMContextWayland *context_wayland;
|
||||
int side;
|
||||
|
||||
context_wayland = GTK_IM_CONTEXT_WAYLAND (context);
|
||||
|
||||
if (context_wayland->cursor_rect.x == rect->x &&
|
||||
context_wayland->cursor_rect.y == rect->y &&
|
||||
context_wayland->cursor_rect.width == rect->width &&
|
||||
context_wayland->cursor_rect.height == rect->height)
|
||||
return;
|
||||
|
||||
/* Reset the gesture if the cursor changes too far (eg. clicking
|
||||
* between disjoint positions in the text).
|
||||
*
|
||||
* Still Allow some jittering (a square almost double the cursor rect height
|
||||
* on either side) as clicking on the exact same position between characters
|
||||
* is hard.
|
||||
*/
|
||||
side = context_wayland->cursor_rect.height;
|
||||
|
||||
if (context_wayland->gesture &&
|
||||
(ABS (rect->x - context_wayland->cursor_rect.x) >= side ||
|
||||
ABS (rect->y - context_wayland->cursor_rect.y) >= side))
|
||||
gtk_event_controller_reset (GTK_EVENT_CONTROLLER (context_wayland->gesture));
|
||||
|
||||
context_wayland->cursor_rect = *rect;
|
||||
notify_cursor_location (context_wayland);
|
||||
commit_state (context_wayland);
|
||||
|
Loading…
Reference in New Issue
Block a user