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;
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);
}
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;
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);
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;
}
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;
}
}
}
}
- _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;
}