text: Prevent unexpected notify::direction emissions

Calling gdk_device_get_direction can trigger a
notify::direction emissions, since the X11 backend
determines the direction on demand. Prevent that by
forcing the direction to be determined ahead of time.

Fixes: #5311
This commit is contained in:
Matthias Clasen 2022-11-25 07:59:35 -05:00 committed by Mat
parent 6c8c30b249
commit 2eb252199c

View File

@ -3258,8 +3258,12 @@ gtk_text_focus_changed (GtkEventControllerFocus *controller,
if (gtk_event_controller_focus_is_focus (controller))
{
if (keyboard)
g_signal_connect (keyboard, "notify::direction",
G_CALLBACK (direction_changed), self);
{
/* Work around unexpected notify::direction emissions */
gdk_device_get_direction (keyboard);
g_signal_connect (keyboard, "notify::direction",
G_CALLBACK (direction_changed), self);
}
gtk_text_im_set_focus_in (self);
gtk_text_reset_blink_time (self);