diff options
author | Tom <tom@stosb.com> | 2010-02-27 01:15:13 +0000 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2010-02-27 04:09:01 +0100 |
commit | 88533b9e34074df974c5193ab2f6c61592f5cd57 (patch) | |
tree | 48e048df637dd71e400b221d61a4686a5cac2d83 /recipes/e17/e-wm | |
parent | 43b197ec24c328ac678eb1db09658b7a0c2947a9 (diff) |
e-wm: add illume keyboard flow patch, until it makes it to upstream
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes/e17/e-wm')
-rw-r--r-- | recipes/e17/e-wm/illume-keyboard-flow.patch | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/recipes/e17/e-wm/illume-keyboard-flow.patch b/recipes/e17/e-wm/illume-keyboard-flow.patch new file mode 100644 index 0000000000..df5a5e5ff6 --- /dev/null +++ b/recipes/e17/e-wm/illume-keyboard-flow.patch @@ -0,0 +1,76 @@ +Index: e/src/modules/illume-keyboard/e_kbd_int.c +=================================================================== +--- e/src/modules/illume-keyboard/e_kbd_int.c (revision 46510) ++++ e/src/modules/illume-keyboard/e_kbd_int.c (working copy) +@@ -434,6 +434,16 @@ + static void + _e/src/modules/illume-keyboard/e_kbd_int_stroke_handle(E_Kbd_Int *ki, int dir) + { ++ /* If the keyboard direction is RTL switch dir 3 and 1 ++ * i.e, make forward backwards and the other way around */ ++ if (ki->layout.direction == E_KBD_INT_DIRECTION_RTL) ++ { ++ if (dir == 3) ++ dir = 1; ++ else if (dir == 1) ++ dir = 3; ++ } ++ + if (dir == 4) // up + _e/src/modules/illume-keyboard/e_kbd_int_layout_next(ki); + else if (dir == 3) // left +@@ -886,6 +896,10 @@ + if (!f) return; + ki->layout.directory = ecore_file_dir_get(layout); + ki->layout.file = eina_stringshare_add(layout); ++ ++ /* Make the default direction LTR */ ++ ki->layout.direction = E_KBD_INT_DIRECTION_LTR; ++ + while (fgets(buf, sizeof(buf), f)) + { + int len; +@@ -913,6 +927,17 @@ + sscanf(buf, "%*s %i\n", &(ki->layout.fuzz)); + continue; + } ++ if (!strcmp(str, "direction")) ++ { ++ char direction[4]; ++ sscanf(buf, "%*s %3s\n", direction); ++ /* If rtl mark as rtl, otherwise make it ltr */ ++ if (!strcmp(direction, "rtl")) ++ ki->layout.direction = E_KBD_INT_DIRECTION_RTL; ++ else ++ ki->layout.direction = E_KBD_INT_DIRECTION_LTR; ++ continue; ++ } + if (!strcmp(str, "key")) + { + ky = calloc(1, sizeof(E_Kbd_Int_Key)); +Index: e/src/modules/illume-keyboard/e_kbd_int.h +=================================================================== +--- e/src/modules/illume-keyboard/e_kbd_int.h (revision 46510) ++++ e/src/modules/illume-keyboard/e_kbd_int.h (working copy) +@@ -15,6 +15,13 @@ + E_KBD_INT_TYPE_PASSWORD = (1 << 6) + } E_Kbd_Int_Type; + ++/* The natural text direction of the keyboard */ ++typedef enum _E_kbd_Int_Direction ++{ ++ E_KBD_INT_DIRECTION_LTR = (1 << 0), ++ E_KBD_INT_DIRECTION_RTL = (1 << 1) ++} E_Kbd_Int_Direction; ++ + typedef struct _E_Kbd_Int E_Kbd_Int; + typedef struct _E_Kbd_Int_Key E_Kbd_Int_Key; + typedef struct _E_Kbd_Int_Key_State E_Kbd_Int_Key_State; +@@ -35,6 +42,7 @@ + const char *file; + int w, h; + int fuzz; ++ int direction; + E_Kbd_Int_Type type; + Eina_List *keys; + E_Kbd_Int_Key *pressed; |