bdilly pushed a commit to branch master.

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

commit ad1d160bb62f568940ab6702a559e5b108b0cac0
Author: Guilherme Iscaro <[email protected]>
Date:   Wed Nov 9 11:44:18 2016 -0200

    Ecore Input Evas: Add ecore_event_evas_seat_modifier_lock_update().
    
    This function will set the modifiers/lock per seat in Evas.
    Some places will still use ecore_event_evas_modifier_lock_update(),
    since multi-seat is not supported.
---
 src/lib/ecore_input_evas/Ecore_Input_Evas.h        |  3 +
 src/lib/ecore_input_evas/ecore_input_evas.c        | 68 +++++++++++++---------
 .../engines/wayland/ecore_evas_wayland_common.c    |  5 +-
 3 files changed, 48 insertions(+), 28 deletions(-)

diff --git a/src/lib/ecore_input_evas/Ecore_Input_Evas.h 
b/src/lib/ecore_input_evas/Ecore_Input_Evas.h
index c9b0c05..e126e45 100644
--- a/src/lib/ecore_input_evas/Ecore_Input_Evas.h
+++ b/src/lib/ecore_input_evas/Ecore_Input_Evas.h
@@ -59,6 +59,9 @@ EAPI void      ecore_event_window_ignore_events(Ecore_Window 
id, int ignore_even
 
 EAPI void      ecore_event_evas_modifier_lock_update(Evas *e, unsigned int 
modifiers);
 
+EAPI void ecore_event_evas_seat_modifier_lock_update(Evas *e, unsigned int 
modifiers,
+                                                     Evas_Device *seat); /**< 
@since 1.19 */
+
 #ifdef ECORE_EVAS_INTERNAL
 typedef Eina_Bool (*Ecore_Event_Direct_Input_Cb)(void *window, int type, const 
void *info);
 EAPI void      _ecore_event_window_direct_cb_set(Ecore_Window id, 
Ecore_Event_Direct_Input_Cb fptr);
diff --git a/src/lib/ecore_input_evas/ecore_input_evas.c 
b/src/lib/ecore_input_evas/ecore_input_evas.c
index 6e37cc6..735ad27 100644
--- a/src/lib/ecore_input_evas/ecore_input_evas.c
+++ b/src/lib/ecore_input_evas/ecore_input_evas.c
@@ -278,50 +278,57 @@ _ecore_event_evas_push_mouse_move(Ecore_Event_Mouse_Move 
*e)
 }
 
 EAPI void
-ecore_event_evas_modifier_lock_update(Evas *e, unsigned int modifiers)
+ecore_event_evas_seat_modifier_lock_update(Evas *e, unsigned int modifiers,
+                                           Evas_Device *seat)
 {
    if (modifiers & ECORE_EVENT_MODIFIER_SHIFT)
-     evas_key_modifier_on(e, "Shift");
-   else evas_key_modifier_off(e, "Shift");
+     evas_seat_key_modifier_on(e, "Shift", seat);
+   else evas_seat_key_modifier_off(e, "Shift", seat);
 
    if (modifiers & ECORE_EVENT_MODIFIER_CTRL)
-     evas_key_modifier_on(e, "Control");
-   else evas_key_modifier_off(e, "Control");
+     evas_seat_key_modifier_on(e, "Control", seat);
+   else evas_seat_key_modifier_off(e, "Control", seat);
 
    if (modifiers & ECORE_EVENT_MODIFIER_ALT)
-     evas_key_modifier_on(e, "Alt");
-   else evas_key_modifier_off(e, "Alt");
+     evas_seat_key_modifier_on(e, "Alt", seat);
+   else evas_seat_key_modifier_off(e, "Alt", seat);
 
    if (modifiers & ECORE_EVENT_MODIFIER_WIN)
      {
-        evas_key_modifier_on(e, "Super");
-        evas_key_modifier_on(e, "Hyper");
+        evas_seat_key_modifier_on(e, "Super", seat);
+        evas_seat_key_modifier_on(e, "Hyper", seat);
      }
    else
      {
-        evas_key_modifier_off(e, "Super");
-        evas_key_modifier_off(e, "Hyper");
+        evas_seat_key_modifier_off(e, "Super", seat);
+        evas_seat_key_modifier_off(e, "Hyper", seat);
      }
 
    if (modifiers & ECORE_EVENT_MODIFIER_ALTGR)
-     evas_key_modifier_on(e, "AltGr");
-   else evas_key_modifier_off(e, "AltGr");
+     evas_seat_key_modifier_on(e, "AltGr", seat);
+   else evas_seat_key_modifier_off(e, "AltGr", seat);
 
    if (modifiers & ECORE_EVENT_LOCK_SCROLL)
-     evas_key_lock_on(e, "Scroll_Lock");
-   else evas_key_lock_off(e, "Scroll_Lock");
+     evas_seat_key_lock_on(e, "Scroll_Lock", seat);
+   else evas_seat_key_lock_off(e, "Scroll_Lock", seat);
 
    if (modifiers & ECORE_EVENT_LOCK_NUM)
-     evas_key_lock_on(e, "Num_Lock");
-   else evas_key_lock_off(e, "Num_Lock");
+     evas_seat_key_lock_on(e, "Num_Lock", seat);
+   else evas_seat_key_lock_off(e, "Num_Lock", seat);
 
    if (modifiers & ECORE_EVENT_LOCK_CAPS)
-     evas_key_lock_on(e, "Caps_Lock");
-   else evas_key_lock_off(e, "Caps_Lock");
+     evas_seat_key_lock_on(e, "Caps_Lock", seat);
+   else evas_seat_key_lock_off(e, "Caps_Lock", seat);
 
    if (modifiers & ECORE_EVENT_LOCK_SHIFT)
-     evas_key_lock_on(e, "Shift_Lock");
-   else evas_key_lock_off(e, "Shift_Lock");
+     evas_seat_key_lock_on(e, "Shift_Lock", seat);
+   else evas_seat_key_lock_off(e, "Shift_Lock", seat);
+}
+
+EAPI void
+ecore_event_evas_modifier_lock_update(Evas *e, unsigned int modifiers)
+{
+   ecore_event_evas_seat_modifier_lock_update(e, modifiers, NULL);
 }
 
 EAPI void
@@ -412,7 +419,9 @@ _ecore_event_evas_key(Ecore_Event_Key *e, Ecore_Event_Press 
press)
 
    lookup = _ecore_event_window_match(e->event_window);
    if (!lookup) return ECORE_CALLBACK_PASS_ON;
-   ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
+   ecore_event_evas_seat_modifier_lock_update(lookup->evas,
+                                              e->modifiers,
+                                              
efl_input_device_seat_get(e->dev));
    if (press == ECORE_DOWN)
      {
         if (!lookup->direct ||
@@ -521,7 +530,9 @@ _ecore_event_evas_mouse_button(Ecore_Event_Mouse_Button *e, 
Ecore_Event_Press pr
 
    if (e->multi.device == 0)
      {
-        ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
+        ecore_event_evas_seat_modifier_lock_update(lookup->evas,
+                                                   e->modifiers,
+                                                   
efl_input_device_seat_get(e->dev));
         if (press == ECORE_DOWN)
           {
              if (!lookup->direct ||
@@ -601,7 +612,9 @@ ecore_event_evas_mouse_move(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *
    if (e->multi.device == 0)
      {
         _ecore_event_evas_push_mouse_move(e);
-        ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
+        ecore_event_evas_seat_modifier_lock_update(lookup->evas,
+                                                   e->modifiers,
+                                                   
efl_input_device_seat_get(e->dev));
         if (!lookup->direct ||
             !lookup->direct(lookup->window, ECORE_EVENT_MOUSE_MOVE, e))
           {
@@ -660,7 +673,9 @@ _ecore_event_evas_mouse_io(Ecore_Event_Mouse_IO *e, 
Ecore_Event_IO io)
 
    lookup = _ecore_event_window_match(e->event_window);
    if (!lookup) return ECORE_CALLBACK_PASS_ON;
-   ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
+   ecore_event_evas_seat_modifier_lock_update(lookup->evas,
+                                              e->modifiers,
+                                              
efl_input_device_seat_get(e->dev));
    switch (io)
      {
       case ECORE_IN:
@@ -706,7 +721,8 @@ ecore_event_evas_mouse_wheel(void *data EINA_UNUSED, int 
type EINA_UNUSED, void
    e = event;
    lookup = _ecore_event_window_match(e->event_window);
    if (!lookup) return ECORE_CALLBACK_PASS_ON;
-   ecore_event_evas_modifier_lock_update(lookup->evas, e->modifiers);
+   ecore_event_evas_seat_modifier_lock_update(lookup->evas, e->modifiers,
+                                              
efl_input_device_seat_get(e->dev));
    if (!lookup->direct ||
        !lookup->direct(lookup->window, ECORE_EVENT_MOUSE_WHEEL, e))
      {
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 0bea2c4..a4c2f36 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -168,7 +168,7 @@ _ecore_evas_wl_common_cb_mouse_in(void *data EINA_UNUSED, 
int type EINA_UNUSED,
    if (_ecore_evas_mouse_in_check(ee, ev->dev)) return ECORE_CALLBACK_PASS_ON;
 
    _ecore_evas_mouse_inout_set(ee, ev->dev, EINA_TRUE, EINA_FALSE);
-   ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
+   ecore_event_evas_seat_modifier_lock_update(ee->evas, ev->modifiers, 
ev->dev);
    evas_event_feed_mouse_in(ee->evas, ev->timestamp, NULL);
    _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
    return ECORE_CALLBACK_PASS_ON;
@@ -188,7 +188,8 @@ _ecore_evas_wl_common_cb_mouse_out(void *data EINA_UNUSED, 
int type EINA_UNUSED,
    if (ev->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON;
    if (!_ecore_evas_mouse_in_check(ee, ev->dev)) return ECORE_CALLBACK_PASS_ON;
 
-   ecore_event_evas_modifier_lock_update(ee->evas, ev->modifiers);
+   ecore_event_evas_seat_modifier_lock_update(ee->evas,
+                                              ev->modifiers, ev->dev);
    _ecore_evas_mouse_move_process(ee, ev->x, ev->y, ev->timestamp);
    evas_event_feed_mouse_out(ee->evas, ev->timestamp, NULL);
    _ecore_evas_mouse_inout_set(ee, ev->dev, EINA_FALSE, EINA_FALSE);

-- 


Reply via email to