diff options
author | Chris Michael <cp.michael@samsung.com> | 2015-02-11 14:14:52 -0500 |
---|---|---|
committer | Chris Michael <cp.michael@samsung.com> | 2015-02-11 14:14:52 -0500 |
commit | 4f320a80df28c9f1ed0e1922b3e51ed4b1d19f12 (patch) | |
tree | 79e1aba42a60a9522a6469f1c0623b5896fa1807 | |
parent | 150613086643af46b02acc958252aa553ac89903 (diff) |
ecore-drm: Disable/Enable inputs if we release/acquire the VT
Summary: Due to libinput process events directly from evdev, when we
VT switch we should disable/enable inputs accordingly.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r-- | src/lib/ecore_drm/ecore_drm_tty.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lib/ecore_drm/ecore_drm_tty.c b/src/lib/ecore_drm/ecore_drm_tty.c index f9ea64c305..0d525f07dd 100644 --- a/src/lib/ecore_drm/ecore_drm_tty.c +++ b/src/lib/ecore_drm/ecore_drm_tty.c | |||
@@ -10,6 +10,8 @@ static Eina_Bool | |||
10 | _ecore_drm_tty_cb_vt_signal(void *data, int type EINA_UNUSED, void *event) | 10 | _ecore_drm_tty_cb_vt_signal(void *data, int type EINA_UNUSED, void *event) |
11 | { | 11 | { |
12 | Ecore_Drm_Device *dev; | 12 | Ecore_Drm_Device *dev; |
13 | Ecore_Drm_Input *input; | ||
14 | Eina_List *l; | ||
13 | Ecore_Event_Signal_User *ev; | 15 | Ecore_Event_Signal_User *ev; |
14 | siginfo_t sig; | 16 | siginfo_t sig; |
15 | 17 | ||
@@ -21,12 +23,16 @@ _ecore_drm_tty_cb_vt_signal(void *data, int type EINA_UNUSED, void *event) | |||
21 | switch (ev->number) | 23 | switch (ev->number) |
22 | { | 24 | { |
23 | case 1: | 25 | case 1: |
26 | EINA_LIST_FOREACH(dev->inputs, l, input) | ||
27 | ecore_drm_inputs_disable(input); | ||
24 | ecore_drm_device_master_drop(dev); | 28 | ecore_drm_device_master_drop(dev); |
25 | ioctl(dev->tty.fd, VT_RELDISP, 1); | 29 | ioctl(dev->tty.fd, VT_RELDISP, 1); |
26 | break; | 30 | break; |
27 | case 2: | 31 | case 2: |
28 | ioctl(dev->tty.fd, VT_RELDISP, VT_ACKACQ); | 32 | ioctl(dev->tty.fd, VT_RELDISP, VT_ACKACQ); |
29 | ecore_drm_device_master_set(dev); | 33 | ecore_drm_device_master_set(dev); |
34 | EINA_LIST_FOREACH(dev->inputs, l, input) | ||
35 | ecore_drm_inputs_enable(input); | ||
30 | break; | 36 | break; |
31 | default: | 37 | default: |
32 | break; | 38 | break; |