[mutter/wip/carlosg/input-method-fixes: 4/5] wayland: Reset ClutterInputFocus on focus changes
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/input-method-fixes: 4/5] wayland: Reset ClutterInputFocus on focus changes
- Date: Fri, 22 Apr 2022 16:18:50 +0000 (UTC)
commit 2b83cb1ccd7e23c08b24869ab4491594d9a9b569
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Apr 22 18:06:39 2022 +0200
wayland: Reset ClutterInputFocus on focus changes
Focus changes should trigger an IM reset, as some engines do want
to maybe commit the preedit string before changing focus. In addition,
we do not want the preedit string to be able to move between
windows/applications.
Ensure that the commit string is committed when the IM deems so, and
ensure we send a .done event disntinct to the .leave event, so that
the client doesn't miss the commit.
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2030
src/wayland/meta-wayland-text-input.c | 2 ++
1 file changed, 2 insertions(+)
---
diff --git a/src/wayland/meta-wayland-text-input.c b/src/wayland/meta-wayland-text-input.c
index fc3d0619e4..f1fdc70c9f 100644
--- a/src/wayland/meta-wayland-text-input.c
+++ b/src/wayland/meta-wayland-text-input.c
@@ -343,6 +343,8 @@ meta_wayland_text_input_set_focus (MetaWaylandTextInput *text_input,
if (clutter_input_focus_is_focused (focus))
{
input_method = clutter_backend_get_input_method (clutter_get_default_backend ());
+ clutter_input_focus_reset (focus);
+ meta_wayland_text_input_focus_flush_done (focus);
clutter_input_method_focus_out (input_method);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]