[mutter/wip/carlosg/fix-issue-65: 2/2] clutter: Give the ClutterTextInputFocus a first stab at handling key events



commit 481e87032c981cb939301ca72b4d6dc4c91711fb
Author: Carlos Garnacho <carlosg gnome org>
Date:   Tue Mar 13 12:00:47 2018 +0100

    clutter: Give the ClutterTextInputFocus a first stab at handling key events
    
    Actor keybindings were dispatched in an earlier return path, which means
    the IM doesn't get to see certain key events. Flip the order around so the
    IM has an opportunity to handle all keypresses.
    
    https://gitlab.gnome.org/GNOME/mutter/issues/65
    
    Closes: #65

 clutter/clutter/clutter-text.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
---
diff --git a/clutter/clutter/clutter-text.c b/clutter/clutter/clutter-text.c
index 280df0340..4828a4cbd 100644
--- a/clutter/clutter/clutter-text.c
+++ b/clutter/clutter/clutter-text.c
@@ -2224,6 +2224,11 @@ clutter_text_key_press (ClutterActor    *actor,
   pool = clutter_binding_pool_find (g_type_name (CLUTTER_TYPE_TEXT));
   g_assert (pool != NULL);
 
+  if (!(event->flags & CLUTTER_EVENT_FLAG_INPUT_METHOD) &&
+      clutter_input_focus_is_focused (priv->input_focus) &&
+      clutter_input_focus_filter_key_event (priv->input_focus, event))
+    return CLUTTER_EVENT_STOP;
+
   /* we allow passing synthetic events that only contain
    * the Unicode value and not the key symbol, unless they
    * contain the input method flag.
@@ -2247,10 +2252,6 @@ clutter_text_key_press (ClutterActor    *actor,
     {
       gunichar key_unichar;
 
-      if (clutter_input_focus_is_focused (priv->input_focus) &&
-          clutter_input_focus_filter_key_event (priv->input_focus, event))
-        return CLUTTER_EVENT_STOP;
-
       /* Skip keys when control is pressed */
       key_unichar = clutter_event_get_key_unicode ((ClutterEvent *) event);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]