add seat_name variable in struct E_Devicemgr_Input_Device 22/272222/1
authorduna.oh <duna.oh@samsung.com>
Fri, 11 Mar 2022 07:11:40 +0000 (16:11 +0900)
committerduna.oh <duna.oh@samsung.com>
Fri, 11 Mar 2022 09:51:00 +0000 (18:51 +0900)
Change-Id: Ica53641c84c38b0d8198113ff915c22dafca3873

src/bin/e_devicemgr.h
src/bin/e_devicemgr_input.c
src/bin/e_input_inputs.c

index 641c660..8935c6b 100644 (file)
@@ -17,6 +17,7 @@ typedef struct _E_Devicemgr_Input_Device
 {
    Eina_List *resources;
    const char *name;
+   const char *seat_name;
    const char *identifier;
    Ecore_Device_Class clas;
    Ecore_Device_Subclass subclas;
index 8fbd242..1f82e13 100644 (file)
@@ -207,6 +207,7 @@ _e_devicemgr_input_device_add(const char *name, const char *identifier, const ch
    if (!(dev = E_NEW(E_Devicemgr_Input_Device, 1))) return;
    dev->name = eina_stringshare_add(name);
    dev->identifier = eina_stringshare_add(identifier);
+   dev->seat_name = eina_stringshare_add(seatname);
    dev->clas = clas;
    dev->subclas = subclas;
 
@@ -275,6 +276,7 @@ _e_devicemgr_input_device_del(const char *name, const char *identifier, const ch
 
    if (dev->name) eina_stringshare_del(dev->name);
    if (dev->identifier) eina_stringshare_del(dev->identifier);
+   if (dev->seat_name) eina_stringshare_del(dev->seat_name);
 
    e_devicemgr->device_list = eina_list_remove(e_devicemgr->device_list, dev);
 
index d91fcb8..f21eb9b 100644 (file)
@@ -66,7 +66,7 @@ _e_input_ecore_device_info_free(void *data EINA_UNUSED, void *ev)
 }
 
 void
-_e_input_ecore_device_event(Ecore_Device *dev, Eina_Bool flag)
+_e_input_ecore_device_event(Ecore_Device *dev, const char* seat_name, Eina_Bool flag)
 {
    Ecore_Event_Device_Info *e;
    E_Input *e_input;
@@ -82,7 +82,10 @@ _e_input_ecore_device_event(Ecore_Device *dev, Eina_Bool flag)
    e->window = e_input?e_input->window:(Ecore_Window)0;
    e->name = eina_stringshare_add(name);
    e->identifier = eina_stringshare_add(identifier);
-   e->seatname = eina_stringshare_add(name);
+   if (seat_name && strlen(seat_name))
+     e->seatname = eina_stringshare_add(seat_name);
+   else
+     e->seatname = eina_stringshare_add(name);
    e->clas = ecore_device_class_get(dev);
    e->subclas = ecore_device_subclass_get(dev);
 
@@ -128,7 +131,7 @@ _seat_create(E_Input_Backend *input, const char *seat)
 
    ecore_event_add(E_INPUT_EVENT_SEAT_ADD, NULL, NULL, NULL);
 
-   _e_input_ecore_device_event(ecore_dev, EINA_TRUE);
+   _e_input_ecore_device_event(ecore_dev, seat, EINA_TRUE);
 
    return s;
 }
@@ -204,7 +207,7 @@ _e_input_add_ecore_device(E_Input_Evdev *edev, Ecore_Device_Class clas)
         edev->ecore_dev_list = eina_list_append(edev->ecore_dev_list, ecore_device_ref(dev));
      }
 
-   _e_input_ecore_device_event(dev, EINA_TRUE);
+   _e_input_ecore_device_event(dev, edev->seat ? edev->seat->name : NULL, EINA_TRUE);
 
    return EINA_TRUE;
 }
@@ -244,7 +247,7 @@ _e_input_remove_ecore_device(E_Input_Evdev *edev, Ecore_Device_Class clas)
                           }
                      }
                 }
-              _e_input_ecore_device_event(dev, EINA_FALSE);
+              _e_input_ecore_device_event(dev, edev->seat ? edev->seat->name : NULL, EINA_FALSE);
               ecore_device_del(dev);
               return EINA_TRUE;
            }