projects
/
platform
/
upstream
/
weston.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
e9cabc1
)
evdev: write EV_SYN input_event along with led events to device
author
Rolf Morel
<rolfmorel@gmail.com>
Fri, 9 Aug 2013 14:32:17 +0000
(16:32 +0200)
committer
Kristian Høgsberg
<krh@bitplanet.net>
Tue, 13 Aug 2013 05:23:13 +0000
(22:23 -0700)
Other clients of an evdev device need to have the events they receive
be separated, in moment in time, from other events by an EV_SYN/
SYN_REPORT. This is the responsibility of the client who writes events
into the stream.
src/evdev.c
patch
|
blob
|
history
diff --git
a/src/evdev.c
b/src/evdev.c
index
2018e2a
..
2966b61
100644
(file)
--- a/
src/evdev.c
+++ b/
src/evdev.c
@@
-45,7
+45,7
@@
evdev_led_update(struct evdev_device *device, enum weston_led leds)
{ LED_CAPS_LOCK, LED_CAPSL },
{ LED_SCROLL_LOCK, LED_SCROLLL },
};
- struct input_event ev[ARRAY_LENGTH(map)];
+ struct input_event ev[ARRAY_LENGTH(map)
+ 1
];
unsigned int i;
if (!device->caps & EVDEV_KEYBOARD)
@@
-57,6
+57,8
@@
evdev_led_update(struct evdev_device *device, enum weston_led leds)
ev[i].code = map[i].evdev;
ev[i].value = !!(leds & map[i].weston);
}
+ ev[i].type = EV_SYN;
+ ev[i].code = SYN_REPORT;
i = write(device->fd, ev, sizeof ev);
(void)i; /* no, we really don't care about the return value */