summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2015-02-17 16:15:52 -0500
committerChris Michael <cp.michael@samsung.com>2015-02-17 16:19:55 -0500
commit6597d39e907cc700374789ad014eb42f0bf54e3d (patch)
treebbacda7c172ac8e3cb1b103baaaa22dcfb70e31d /src/lib/ecore_drm
parent96cbbb3416307211830aa6edc129a8b9984803cf (diff)
ecore-drm: Fix issue of ecore_drm not calling ReleaseDevice when an
input is destroyed Summary: This fixes an issue where if you VT switch away from a running Enlightenment and VT switch back, then input would no longer be working. This was because we never called ReleaseDevice (dbus call) when we destroyed a device, so any calls to recreate the device would fail in libinput due to control already being taken. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
Diffstat (limited to 'src/lib/ecore_drm')
-rw-r--r--src/lib/ecore_drm/ecore_drm_inputs.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/ecore_drm/ecore_drm_inputs.c b/src/lib/ecore_drm/ecore_drm_inputs.c
index 45dce8fd97..d83f2291eb 100644
--- a/src/lib/ecore_drm/ecore_drm_inputs.c
+++ b/src/lib/ecore_drm/ecore_drm_inputs.c
@@ -122,6 +122,9 @@ _device_removed(Ecore_Drm_Input *input EINA_UNUSED, struct libinput_device *devi
122 /* remove this evdev from the seat's list of devices */ 122 /* remove this evdev from the seat's list of devices */
123 edev->seat->devices = eina_list_remove(edev->seat->devices, edev); 123 edev->seat->devices = eina_list_remove(edev->seat->devices, edev);
124 124
125 /* tell launcher to release device */
126 _ecore_drm_launcher_device_close(edev->path, edev->fd);
127
125 /* destroy this evdev */ 128 /* destroy this evdev */
126 _ecore_drm_evdev_device_destroy(edev); 129 _ecore_drm_evdev_device_destroy(edev);
127} 130}
@@ -280,7 +283,10 @@ ecore_drm_inputs_destroy(Ecore_Drm_Device *dev)
280 EINA_LIST_FREE(dev->seats, seat) 283 EINA_LIST_FREE(dev->seats, seat)
281 { 284 {
282 EINA_LIST_FREE(seat->devices, edev) 285 EINA_LIST_FREE(seat->devices, edev)
283 _ecore_drm_evdev_device_destroy(edev); 286 {
287 _ecore_drm_launcher_device_close(edev->path, edev->fd);
288 _ecore_drm_evdev_device_destroy(edev);
289 }
284 290
285 if (seat->name) eina_stringshare_del(seat->name); 291 if (seat->name) eina_stringshare_del(seat->name);
286 free(seat); 292 free(seat);