mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
clutter/text: Be more pervasive at updating input method state
More concretely, ensure preedit text goes away after commit/focus_out, and update cursor position right after focus_in.
This commit is contained in:
parent
49e8bc8a52
commit
37aab9280a
@ -336,6 +336,7 @@ clutter_text_input_focus_commit_text (ClutterInputFocus *focus,
|
|||||||
clutter_text_delete_selection (clutter_text);
|
clutter_text_delete_selection (clutter_text);
|
||||||
clutter_text_insert_text (clutter_text, text,
|
clutter_text_insert_text (clutter_text, text,
|
||||||
clutter_text_get_cursor_position (clutter_text));
|
clutter_text_get_cursor_position (clutter_text));
|
||||||
|
clutter_text_set_preedit_string (clutter_text, NULL, NULL, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2824,7 +2825,10 @@ clutter_text_key_focus_in (ClutterActor *actor)
|
|||||||
ClutterInputMethod *method = clutter_backend_get_input_method (backend);
|
ClutterInputMethod *method = clutter_backend_get_input_method (backend);
|
||||||
|
|
||||||
if (method && priv->editable)
|
if (method && priv->editable)
|
||||||
clutter_input_method_focus_in (method, priv->input_focus);
|
{
|
||||||
|
clutter_input_method_focus_in (method, priv->input_focus);
|
||||||
|
update_cursor_location (CLUTTER_TEXT (actor));
|
||||||
|
}
|
||||||
|
|
||||||
priv->has_focus = TRUE;
|
priv->has_focus = TRUE;
|
||||||
|
|
||||||
@ -2841,7 +2845,10 @@ clutter_text_key_focus_out (ClutterActor *actor)
|
|||||||
priv->has_focus = FALSE;
|
priv->has_focus = FALSE;
|
||||||
|
|
||||||
if (priv->editable && clutter_input_focus_is_focused (priv->input_focus))
|
if (priv->editable && clutter_input_focus_is_focused (priv->input_focus))
|
||||||
clutter_input_method_focus_out (method);
|
{
|
||||||
|
clutter_text_set_preedit_string (CLUTTER_TEXT (actor), NULL, NULL, 0);
|
||||||
|
clutter_input_method_focus_out (method);
|
||||||
|
}
|
||||||
|
|
||||||
clutter_text_queue_redraw (actor);
|
clutter_text_queue_redraw (actor);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user