summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2018-03-13 15:44:19 +0100
committerCarlos Garnacho <carlosg@gnome.org>2018-03-13 16:22:30 +0100
commitda20cc402dd713ac6be9e5b156c712918b4d371c (patch)
tree98ff4bded18db715552bf4793786d956112bfbff
parent47856d97011d7a9bd13c1e1c638a6e43ebd9d9ac (diff)
downloadmutter-wip/carlosg/fix-issue-66.tar.gz
clutter: Apply input hints/purpose on ClutterTextInputFocus focus inwip/carlosg/fix-issue-66
And make the ClutterText-level properties independent from the input focus, as those properties can be set anytime, not just when the ClutterText actor is focused. https://gitlab.gnome.org/GNOME/mutter/issues/66 Closes: #66
-rw-r--r--clutter/clutter/clutter-text.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/clutter/clutter/clutter-text.c b/clutter/clutter/clutter-text.c
index 280df0340..db8dca256 100644
--- a/clutter/clutter/clutter-text.c
+++ b/clutter/clutter/clutter-text.c
@@ -2829,6 +2829,10 @@ clutter_text_key_focus_in (ClutterActor *actor)
if (method && priv->editable)
{
clutter_input_method_focus_in (method, priv->input_focus);
+ clutter_input_focus_set_content_purpose (priv->input_focus,
+ priv->input_purpose);
+ clutter_input_focus_set_content_hints (priv->input_focus,
+ priv->input_hints);
update_cursor_location (CLUTTER_TEXT (actor));
}
@@ -6511,7 +6515,9 @@ clutter_text_set_input_hints (ClutterText *self,
g_return_if_fail (CLUTTER_IS_TEXT (self));
self->priv->input_hints = hints;
- clutter_input_focus_set_content_hints (self->priv->input_focus, hints);
+
+ if (clutter_input_focus_is_focused (self->priv->input_focus))
+ clutter_input_focus_set_content_hints (self->priv->input_focus, hints);
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_INPUT_HINTS]);
}
@@ -6530,7 +6536,9 @@ clutter_text_set_input_purpose (ClutterText *self,
g_return_if_fail (CLUTTER_IS_TEXT (self));
self->priv->input_purpose = purpose;
- clutter_input_focus_set_content_purpose (self->priv->input_focus, purpose);
+
+ if (clutter_input_focus_is_focused (self->priv->input_focus))
+ clutter_input_focus_set_content_purpose (self->priv->input_focus, purpose);
g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_INPUT_PURPOSE]);
}