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 (Cherry-picked from commit 3b6f9111c7da3fee82d3ffd19c444155f84d86ea)
This commit is contained in:
parent
4ccdedfd99
commit
42d6013bc5
@ -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…
x
Reference in New Issue
Block a user