mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 11:32:04 +00:00
clutter: Only reset preedit text if set
On ClutterInputFocus::reset, avoid to unset the preedit text if none was set earlier. This seems to trick GTK clients into focusing the cursor position again, even when we are moving away from it. Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4647 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2059>
This commit is contained in:
parent
8fc1325e8e
commit
3b6f9111c7
@ -103,14 +103,16 @@ clutter_input_focus_reset (ClutterInputFocus *focus)
|
||||
|
||||
priv = clutter_input_focus_get_instance_private (focus);
|
||||
|
||||
if (priv->preedit &&
|
||||
priv->mode == CLUTTER_PREEDIT_RESET_COMMIT)
|
||||
clutter_input_focus_commit (focus, priv->preedit);
|
||||
if (priv->preedit)
|
||||
{
|
||||
if (priv->mode == CLUTTER_PREEDIT_RESET_COMMIT)
|
||||
clutter_input_focus_commit (focus, priv->preedit);
|
||||
|
||||
clutter_input_focus_set_preedit_text (focus, NULL, 0);
|
||||
g_clear_pointer (&priv->preedit, g_free);
|
||||
}
|
||||
|
||||
clutter_input_focus_set_preedit_text (focus, NULL, 0);
|
||||
g_clear_pointer (&priv->preedit, g_free);
|
||||
priv->mode = CLUTTER_PREEDIT_RESET_CLEAR;
|
||||
|
||||
clutter_input_method_reset (priv->im);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user