discomfitor pushed a commit to branch master.

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

commit b7c89d23252d34c1d9efecc27dc835aa8df3c50d
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Wed May 20 14:49:51 2015 -0400

    evas: add keysym member to key event structs
    
    @feature
---
 src/lib/ecore_input_evas/ecore_input_evas.c | 10 ++++---
 src/lib/evas/Evas_Common.h                  |  2 ++
 src/lib/evas/canvas/evas_canvas.eo          | 42 +++++++++++++++++++++++++++++
 src/lib/evas/canvas/evas_events.c           | 30 ++++++++++++++++-----
 4 files changed, 74 insertions(+), 10 deletions(-)

diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c 
b/src/lib/ecore_input_evas/ecore_input_evas.c
index 23e9543..5de76a8 100644
--- a/src/lib/ecore_input_evas/ecore_input_evas.c
+++ b/src/lib/ecore_input_evas/ecore_input_evas.c
@@ -332,23 +332,25 @@ _ecore_event_evas_key(Ecore_Event_Key *e, 
Ecore_Event_Press press)
    if (!lookup) return ECORE_CALLBACK_PASS_ON;
    ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
    if (press == ECORE_DOWN)
-     evas_event_feed_key_down_with_keycode(lookup->evas,
+     evas_event_feed_key_down_with_keycode_and_keysym(lookup->evas,
                                            e->keyname,
                                            e->key,
                                            e->string,
                                            e->compose,
                                            e->timestamp,
                                            e->data,
-                                           e->keycode);
+                                           e->keycode,
+                                           e->keysym);
    else
-     evas_event_feed_key_up_with_keycode(lookup->evas,
+     evas_event_feed_key_up_with_keycode_and_keysym(lookup->evas,
                                          e->keyname,
                                          e->key,
                                          e->string,
                                          e->compose,
                                          e->timestamp,
                                          e->data,
-                                         e->keycode);
+                                         e->keycode,
+                                         e->keysym);
    return ECORE_CALLBACK_PASS_ON;
 }
 
diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h
index bc2e184..c3c33f1 100644
--- a/src/lib/evas/Evas_Common.h
+++ b/src/lib/evas/Evas_Common.h
@@ -859,6 +859,7 @@ struct _Evas_Event_Key_Down /** Key press event */
    Evas_Device     *dev;
 
    unsigned int     keycode; /**< Key scan code numeric value @since 1.10 */
+   unsigned int     keysym; /**< Encoding of key symbol @since 1.15 */
 };
 
 struct _Evas_Event_Key_Up /** Key release event */
@@ -876,6 +877,7 @@ struct _Evas_Event_Key_Up /** Key release event */
    Evas_Device     *dev;
 
    unsigned int     keycode; /**< Key scan code numeric value @since 1.10 */
+   unsigned int     keysym; /**< Encoding of key symbol @since 1.15 */
 };
 
 struct _Evas_Event_Render_Post /** Send when the frame rendering is done 
@since 1.8 */
diff --git a/src/lib/evas/canvas/evas_canvas.eo 
b/src/lib/evas/canvas/evas_canvas.eo
index 130a083..f27fda0 100644
--- a/src/lib/evas/canvas/evas_canvas.eo
+++ b/src/lib/evas/canvas/evas_canvas.eo
@@ -1781,6 +1781,48 @@ class Evas.Canvas (Eo.Base, Evas.Common_Interface)
             @in keycode: uint; /*@ Key scan code numeric value for canvas. */
          }
       }
+      event_feed_key_down_with_keycode_and_keysym {
+         /*@
+         Key down event feed with keycode and keysym
+
+         This function will set some evas properties that is necessary when
+         a key is pressed. It prepares information to be treated by the
+         callback function.
+
+         @since 1.15 */
+
+         params {
+            @in keyname: const(char)*; /*@ Name of the key */
+            @in key: const(char)*; /*@ The key pressed. */
+            @in string: const(char)*; /*@ A String */
+            @in compose: const(char)*; /*@ The compose string */
+            @in timestamp: uint; /*@ Timestamp of the mouse up event */
+            @in data: const(void)*; /*@ Data for canvas. */
+            @in keycode: uint; /*@ Key scan code numeric value for canvas. */
+            @in keysym: uint; /*@ Keysym for pressed key. */
+         }
+      }
+      event_feed_key_up_with_keycode_and_keysym {
+         /*@
+         Key up event feed with keycode
+
+         This function will set some evas properties that is necessary when
+         a key is released. It prepares information to be treated by the
+         callback function.
+
+         @since 1.15 */
+
+         params {
+            @in keyname: const(char)*; /*@ Name of the key */
+            @in key: const(char)*; /*@ The key released. */
+            @in string: const(char)*; /*@ string */
+            @in compose: const(char)*; /*@ compose */
+            @in timestamp: uint; /*@ Timestamp of the mouse up event */
+            @in data: const(void)*; /*@ Data for canvas. */
+            @in keycode: uint; /*@ Key scan code numeric value for canvas. */
+            @in keysym: uint; /*@ Keysym for pressed key. */
+         }
+      }
       event_feed_axis_update {
          /*@
          Input device axis update event feed.
diff --git a/src/lib/evas/canvas/evas_events.c 
b/src/lib/evas/canvas/evas_events.c
index b357044..b6ef1ef 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -2451,7 +2451,8 @@ _canvas_event_feed_key_down_internal(Eo *eo_e,
                                      const char *compose,
                                      unsigned int timestamp,
                                      const void *data,
-                                     unsigned int keycode)
+                                     unsigned int keycode,
+                                     unsigned int keysym)
 {
    Evas_Public_Data *e = _pd;
    int event_id = 0;
@@ -2479,6 +2480,7 @@ _canvas_event_feed_key_down_internal(Eo *eo_e,
    ev.event_flags = e->default_event_flags;
    ev.dev = _evas_device_top_get(eo_e);
    ev.keycode = keycode;
+   ev.keysym = keysym;
    if (ev.dev) _evas_device_ref(ev.dev);
 
    if (e->grabs)
@@ -2557,7 +2559,8 @@ _canvas_event_feed_key_up_internal(Eo *eo_e,
                                    const char *compose,
                                    unsigned int timestamp,
                                    const void *data,
-                                   unsigned int keycode)
+                                   unsigned int keycode,
+                                   unsigned int keysym)
 {
    Evas_Public_Data *e = _pd;
    int event_id = 0;
@@ -2584,6 +2587,7 @@ _canvas_event_feed_key_up_internal(Eo *eo_e,
    ev.event_flags = e->default_event_flags;
    ev.dev = _evas_device_top_get(eo_e);
    ev.keycode = keycode;
+   ev.keysym = keysym;
    if (ev.dev) _evas_device_ref(ev.dev);
 
    if (e->grabs)
@@ -2657,28 +2661,42 @@ EOLIAN void
 _evas_canvas_event_feed_key_down(Eo *eo_e, Evas_Public_Data *e, const char 
*keyname, const char *key, const char *string, const char *compose, unsigned 
int timestamp, const void *data)
 {
    _canvas_event_feed_key_down_internal(eo_e, e, keyname, key, string,
-                                        compose, timestamp, data, 0);
+                                        compose, timestamp, data, 0, 0);
 }
 
 EOLIAN void
 _evas_canvas_event_feed_key_up(Eo *eo_e, Evas_Public_Data *e, const char 
*keyname, const char *key, const char *string, const char *compose, unsigned 
int timestamp, const void *data)
 {
    _canvas_event_feed_key_up_internal(eo_e, e, keyname, key, string,
-                                      compose, timestamp, data, 0);
+                                      compose, timestamp, data, 0, 0);
 }
 
 EOLIAN void
 _evas_canvas_event_feed_key_down_with_keycode(Eo *eo_e, Evas_Public_Data *e, 
const char *keyname, const char *key, const char *string, const char *compose, 
unsigned int timestamp, const void *data, unsigned int keycode)
 {
    _canvas_event_feed_key_down_internal(eo_e, e, keyname, key, string,
-                                        compose, timestamp, data, keycode);
+                                        compose, timestamp, data, keycode, 0);
 }
 
 EOLIAN void
 _evas_canvas_event_feed_key_up_with_keycode(Eo *eo_e, Evas_Public_Data *e, 
const char *keyname, const char *key, const char *string, const char *compose, 
unsigned int timestamp, const void *data, unsigned int keycode)
 {
    _canvas_event_feed_key_up_internal(eo_e, e, keyname, key, string,
-                                      compose, timestamp, data, keycode);
+                                      compose, timestamp, data, keycode, 0);
+}
+
+EOLIAN void
+_evas_canvas_event_feed_key_down_with_keycode_and_keysym(Eo *eo_e, 
Evas_Public_Data *e, const char *keyname, const char *key, const char *string, 
const char *compose, unsigned int timestamp, const void *data, unsigned int 
keycode, unsigned int keysym)
+{
+   _canvas_event_feed_key_down_internal(eo_e, e, keyname, key, string,
+                                        compose, timestamp, data, keycode, 
keysym);
+}
+
+EOLIAN void
+_evas_canvas_event_feed_key_up_with_keycode_and_keysym(Eo *eo_e, 
Evas_Public_Data *e, const char *keyname, const char *key, const char *string, 
const char *compose, unsigned int timestamp, const void *data, unsigned int 
keycode, unsigned int keysym)
+{
+   _canvas_event_feed_key_up_internal(eo_e, e, keyname, key, string,
+                                      compose, timestamp, data, keycode, 
keysym);
 }
 
 EOLIAN void

-- 


Reply via email to