Compare commits

...

2 Commits

Author SHA1 Message Date
Chris Michael 595b45f912 ecore-drm2: Suspend/Resume input devices when we VT-Switch
When we get notified that a vt-switch happens, we should
suspend/resume inputs accordingly

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-07-27 15:45:17 -04:00
Chris Michael ee3e495a2a elput: Add new APIs to suspend/resume input
When we VT-Switch away from E, we should suspend input process, and
resume it when we switch back

@feature

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-07-27 15:44:14 -04:00
3 changed files with 32 additions and 0 deletions

View File

@ -20,6 +20,11 @@ _cb_session_active(void *data, int type EINA_UNUSED, void *event)
ev = event;
device = data;
if (!ev->active)
elput_input_devices_suspend(device->em);
else
elput_input_devices_resume(device->em);
EINA_LIST_FOREACH(device->outputs, l, output)
ecore_drm2_output_enabled_set(output, ev->active);

View File

@ -413,6 +413,10 @@ EAPI void elput_input_keyboard_cached_keymap_set(Elput_Manager *manager, void *k
*/
EAPI Eina_Stringshare *elput_input_device_output_name_get(Elput_Device *device);
EAPI void elput_input_devices_suspend(Elput_Manager *manager);
EAPI void elput_input_devices_resume(Elput_Manager *manager);
# endif
# undef EAPI

View File

@ -546,6 +546,29 @@ elput_input_devices_calibrate(Elput_Manager *manager, int w, int h)
}
}
EAPI void
elput_input_devices_suspend(Elput_Manager *manager)
{
EINA_SAFETY_ON_NULL_RETURN(manager);
if (manager->input.suspended) return;
libinput_suspend(manager->input.lib);
manager->input.suspended = EINA_TRUE;
_process_events(&manager->input);
}
EAPI void
elput_input_devices_resume(Elput_Manager *manager)
{
EINA_SAFETY_ON_NULL_RETURN(manager);
if (!manager->input.suspended) return;
libinput_resume(manager->input.lib);
manager->input.suspended = EINA_FALSE;
_process_events(&manager->input);
}
EAPI Eina_Bool
elput_input_key_remap_enable(Elput_Manager *manager, Eina_Bool enable)
{