When inserting text on a key press event we should also truncate
the selection.
We should not truncate the selection when inserting any Unicode
character, since changing the selection also changes the cursor
position - and one of the invariants we inherited from ClutterEntry
is that inserting characters programmatically does not change the
cursor position.
clutter_text_key_press (ClutterActor *actor,
ClutterKeyEvent *event)
{
- ClutterTextPrivate *priv = CLUTTER_TEXT (actor)->priv;
+ ClutterText *self = CLUTTER_TEXT (actor);
+ ClutterTextPrivate *priv = self->priv;
ClutterBindingPool *pool;
gboolean res;
gint keyval;
if (g_unichar_validate (key_unichar))
{
- clutter_text_insert_unichar (CLUTTER_TEXT (actor), key_unichar);
+ clutter_text_truncate_selection (self);
+ clutter_text_insert_unichar (self, key_unichar);
return TRUE;
}