woohyun pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=45c6212d2078ce33f2966b3dca698a97ad51b9f9

commit 45c6212d2078ce33f2966b3dca698a97ad51b9f9
Author: Ali <ali198...@gmail.com>
Date:   Wed Aug 5 11:32:11 2020 +0900

    elm_entry/efl.ui.textbox: use common key shortcuts
    
    Summary:
    **key** value comes from keyboard down callbacks are common, regardless of 
language/layout but **keyname** is dependent on layout(in X11, in Wayland Can 
not be produced).
    This common fix for both.
    
    For example if keyboard layout in arabic then:
    Ctrl+A  will not work (in X11)
    
    This one enhances D11606
    
    Reviewers: woohyun, bu5hm4n, zmike
    
    Reviewed By: woohyun
    
    Subscribers: cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D11695
---
 src/lib/edje/edje_entry.c                          | 31 +++++++++-------------
 .../elementary/efl_ui_internal_text_interactive.c  | 12 ++++-----
 src/tests/elementary/elm_test_entry.c              |  2 +-
 3 files changed, 19 insertions(+), 26 deletions(-)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 81046a3716..1ed9091b09 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -1737,13 +1737,6 @@ _compose_seq_reset(Entry *en)
    en->composing = EINA_FALSE;
 }
 
-#define KEYCODE_A 65
-#define KEYCODE_C 67
-#define KEYCODE_V 86
-#define KEYCODE_X 88
-#define KEYCODE_Y 89
-#define KEYCODE_Z 90
-
 static void
 _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
 {
@@ -2085,9 +2078,9 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (!shift) && (!strcmp(ev->keyname, "v")))
+   else if ((super) && (!shift) && (!strcmp(ev->key, "v")))
 #else
-   else if ((control) && (!shift) && (!strcmp(ev->keyname, "v")))
+   else if ((control) && (!shift) && (!strcmp(ev->key, "v")))
 #endif
      {
         _compose_seq_reset(en);
@@ -2096,9 +2089,9 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (!strcmp(ev->keyname, "a") || ev->keycode == KEYCODE_A))
+   else if ((super) && (!strcmp(ev->key, "a")))
 #else
-   else if ((control) && (!strcmp(ev->keyname, "a") || ev->keycode == 
KEYCODE_A))
+   else if ((control) && (!strcmp(ev->key, "a")))
 #endif
      {
         _compose_seq_reset(en);
@@ -2114,9 +2107,9 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
           }
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (((!shift) && (!strcmp(ev->keyname, "c") || ev->keycode 
== KEYCODE_C)) || !strcmp(ev->key, "Insert")))
+   else if ((super) && (((!shift) && !strcmp(ev->key, "c")) || 
!strcmp(ev->key, "Insert")))
 #else
-   else if ((control) && (((!shift) && (!strcmp(ev->keyname, "c") || 
ev->keycode == KEYCODE_C)) || !strcmp(ev->key, "Insert")))
+   else if ((control) && (((!shift) && !strcmp(ev->key, "c")) || 
!strcmp(ev->key, "Insert")))
 #endif
      {
         _compose_seq_reset(en);
@@ -2124,9 +2117,9 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (!shift) && (((!strcmp(ev->keyname, "x") || ev->keycode 
== KEYCODE_X) || (!strcmp(ev->keyname, "m")))))
+   else if ((super) && (!shift) && ((!strcmp(ev->key, "x") || 
(!strcmp(ev->key, "m")))))
 #else
-   else if ((control) && (!shift) && (((!strcmp(ev->keyname, "x") || 
ev->keycode == KEYCODE_X) || (!strcmp(ev->keyname, "m")))))
+   else if ((control) && (!shift) && ((!strcmp(ev->key, "x") || 
(!strcmp(ev->key, "m")))))
 #endif
      {
         _compose_seq_reset(en);
@@ -2134,9 +2127,9 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (!strcmp(ev->keyname, "z") || ev->keycode == KEYCODE_Z))
+   else if ((super) && (!strcmp(ev->key, "z")))
 #else
-   else if ((control) && (!strcmp(ev->keyname, "z") || ev->keycode == 
KEYCODE_Z))
+   else if ((control) && (!strcmp(ev->key, "z")))
 #endif
      {
         _compose_seq_reset(en);
@@ -2153,9 +2146,9 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (!shift) && (!strcmp(ev->keyname, "y")  || ev->keycode 
== KEYCODE_Y))
+   else if ((super) && (!shift) && (!strcmp(ev->key, "y")))
 #else
-   else if ((control) && (!shift) && (!strcmp(ev->keyname, "y") || ev->keycode 
== KEYCODE_Y))
+   else if ((control) && (!shift) && (!strcmp(ev->key, "y")))
 #endif
      {
         _compose_seq_reset(en);
diff --git a/src/lib/elementary/efl_ui_internal_text_interactive.c 
b/src/lib/elementary/efl_ui_internal_text_interactive.c
index 397bbefcea..d1d374adb3 100644
--- a/src/lib/elementary/efl_ui_internal_text_interactive.c
+++ b/src/lib/elementary/efl_ui_internal_text_interactive.c
@@ -1375,9 +1375,9 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
Evas_Object *obj, void
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (!strcmp(ev->keyname, "a")))
+   else if ((super) && (!strcmp(ev->key, "a")))
 #else
-   else if ((control) && (!strcmp(ev->keyname, "a")))
+   else if ((control) && (!strcmp(ev->key, "a")))
 #endif
      {
         _compose_seq_reset(en);
@@ -1393,9 +1393,9 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
Evas_Object *obj, void
           }
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (!strcmp(ev->keyname, "z")))
+   else if ((super) && (!strcmp(ev->key, "z")))
 #else
-   else if ((control) && (!strcmp(ev->keyname, "z")))
+   else if ((control) && (!strcmp(ev->key, "z")))
 #endif
      {
         _compose_seq_reset(en);
@@ -1412,9 +1412,9 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
Evas_Object *obj, void
         ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
      }
 #if defined(__APPLE__) && defined(__MACH__)
-   else if ((super) && (!shift) && (!strcmp(ev->keyname, "y")))
+   else if ((super) && (!shift) && (!strcmp(ev->key, "y")))
 #else
-   else if ((control) && (!shift) && (!strcmp(ev->keyname, "y")))
+   else if ((control) && (!shift) && (!strcmp(ev->key, "y")))
 #endif
      {
         _compose_seq_reset(en);
diff --git a/src/tests/elementary/elm_test_entry.c 
b/src/tests/elementary/elm_test_entry.c
index 93951d9e45..f3e5c1225c 100644
--- a/src/tests/elementary/elm_test_entry.c
+++ b/src/tests/elementary/elm_test_entry.c
@@ -622,7 +622,7 @@ EFL_START_TEST(elm_entry_keycode)
    Evas *e = evas_object_evas_get(entry);
    elm_object_focus_set(entry, EINA_TRUE);
    evas_key_modifier_on(e, "Control");
-   evas_event_feed_key_down_with_keycode(e, "", "", "", "", time(NULL), NULL, 
65);
+   evas_event_feed_key_down_with_keycode(e, "", "a", "", "", time(NULL), NULL, 
38);
    ecore_main_loop_iterate();
    evas_event_feed_key_down(e, "BackSpace", "BackSpace", "\b", "\b", 
time(NULL), NULL);
    ck_assert_str_eq(elm_object_text_get(entry), "");

-- 


Reply via email to