raster pushed a commit to branch master.

commit 2ab62908399df32903181237ac6c5d54758dc90c
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Wed May 8 12:30:37 2013 +0900

    Terminology: fix tab hotkey with UIM-XIM
    
    Tab switch hotkeys are broken when using UIM-XIM.
    Ctrl-1 displays "1" and doesn't switch tab as the control code is
    supposedly handled by the IMF (even if it is not by configuration).
    
    Note: not sure what the behaviour should be if UIM is configured to
    catch Ctrl-1 sequences?
    
    Setup UIM-XIM if possible.
    Export ECORE_IMF_MODULE=xim.
    Open terminology, create tab, press Ctrl-1. Should switch tab and not
    display "1".
---
 src/bin/termio.c | 36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/bin/termio.c b/src/bin/termio.c
index 3bd2fc8..07665a9 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -1899,24 +1899,6 @@ _smart_cb_key_down(void *data, Evas *e __UNUSED__, 
Evas_Object *obj __UNUSED__,
 
    sd = evas_object_smart_data_get(data);
    if (!sd) return;
-   if (sd->imf)
-     {
-        // EXCEPTION. Don't filter modifiers alt+shift -> breaks emacs
-        // and jed (alt+shift+5 for search/replace for example)
-        // Don't filter modifiers alt, is used by shells
-        if (!evas_key_modifier_is_set(ev->modifiers, "Alt"))
-          {
-             Ecore_IMF_Event_Key_Down imf_ev;
-             
-             ecore_imf_evas_event_key_down_wrap(ev, &imf_ev);
-             if (!sd->composing)
-               {
-                  if (ecore_imf_context_filter_event
-                      (sd->imf, ECORE_IMF_EVENT_KEY_DOWN, (Ecore_IMF_Event 
*)&imf_ev))
-                    goto end;
-               }
-          }
-     }
    if ((!evas_key_modifier_is_set(ev->modifiers, "Alt")) &&
        (evas_key_modifier_is_set(ev->modifiers, "Control")) &&
        (!evas_key_modifier_is_set(ev->modifiers, "Shift")))
@@ -2060,6 +2042,24 @@ _smart_cb_key_down(void *data, Evas *e __UNUSED__, 
Evas_Object *obj __UNUSED__,
              goto end;
           }
      }
+   if (sd->imf)
+     {
+        // EXCEPTION. Don't filter modifiers alt+shift -> breaks emacs
+        // and jed (alt+shift+5 for search/replace for example)
+        // Don't filter modifiers alt, is used by shells
+        if (!evas_key_modifier_is_set(ev->modifiers, "Alt"))
+          {
+             Ecore_IMF_Event_Key_Down imf_ev;
+
+             ecore_imf_evas_event_key_down_wrap(ev, &imf_ev);
+             if (!sd->composing)
+               {
+                  if (ecore_imf_context_filter_event
+                      (sd->imf, ECORE_IMF_EVENT_KEY_DOWN, (Ecore_IMF_Event 
*)&imf_ev))
+                    goto end;
+               }
+          }
+     }
    if ((evas_key_modifier_is_set(ev->modifiers, "Shift")) &&
        (ev->keyname))
      {

-- 

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and 
their applications. This 200-page book is written by three acclaimed 
leaders in the field. The early access version is available now. 
Download your free book today! http://p.sf.net/sfu/neotech_d2d_may

Reply via email to