wayland: Minor refactor
We use the input_method on both branches, but only check for its existence when enabling the text_input. The case of focusing out shouldn't happen in practice as we couldn't have focused in ever before, but still make the check one level above so it's clearer that the text_input's IM focus cannot be enabled without an IM implementation. https://gitlab.gnome.org/GNOME/mutter/merge_requests/432
This commit is contained in:
parent
eabb789381
commit
3e472faf5c
@ -472,31 +472,24 @@ text_input_commit_state (struct wl_client *client,
|
|||||||
MetaWaylandTextInput *text_input = wl_resource_get_user_data (resource);
|
MetaWaylandTextInput *text_input = wl_resource_get_user_data (resource);
|
||||||
ClutterInputFocus *focus = text_input->input_focus;
|
ClutterInputFocus *focus = text_input->input_focus;
|
||||||
gboolean enable_panel = FALSE;
|
gboolean enable_panel = FALSE;
|
||||||
|
ClutterInputMethod *input_method;
|
||||||
|
|
||||||
increment_serial (text_input, resource);
|
increment_serial (text_input, resource);
|
||||||
|
|
||||||
if (text_input->surface == NULL)
|
if (text_input->surface == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (text_input->pending_state & META_WAYLAND_PENDING_STATE_ENABLED)
|
|
||||||
{
|
|
||||||
ClutterInputMethod *input_method;
|
|
||||||
|
|
||||||
input_method = clutter_backend_get_input_method (clutter_get_default_backend ());
|
input_method = clutter_backend_get_input_method (clutter_get_default_backend ());
|
||||||
|
|
||||||
|
if (input_method &&
|
||||||
|
text_input->pending_state & META_WAYLAND_PENDING_STATE_ENABLED)
|
||||||
|
{
|
||||||
if (text_input->enabled)
|
if (text_input->enabled)
|
||||||
{
|
{
|
||||||
if (!clutter_input_focus_is_focused (focus))
|
if (!clutter_input_focus_is_focused (focus))
|
||||||
{
|
|
||||||
if (input_method)
|
|
||||||
clutter_input_method_focus_in (input_method, focus);
|
clutter_input_method_focus_in (input_method, focus);
|
||||||
else
|
else
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
enable_panel = TRUE;
|
enable_panel = TRUE;
|
||||||
}
|
|
||||||
|
|
||||||
clutter_input_focus_set_can_show_preedit (focus, TRUE);
|
clutter_input_focus_set_can_show_preedit (focus, TRUE);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user