evdev: Reset accumulate values when we flush motion events

Otherwise we end up reporting all motion events twice.
dev
Kristian Høgsberg 13 years ago
parent e412ff3025
commit 8b568806aa
  1. 7
      compositor/evdev.c
  2. 2
      compositor/tty.c

@ -229,9 +229,14 @@ evdev_input_device_data(int fd, uint32_t mask, void *data)
/* we try to minimize the amount of notifications to be /* we try to minimize the amount of notifications to be
* forwarded to the compositor, so we accumulate motion * forwarded to the compositor, so we accumulate motion
* events and send as a bunch */ * events and send as a bunch */
if (!is_motion_event(e)) if (!is_motion_event(e)) {
evdev_flush_motion(&device->master->base.input_device, evdev_flush_motion(&device->master->base.input_device,
time, x, y, dx, dy, absolute_event); time, x, y, dx, dy, absolute_event);
dx = 0;
dy = 0;
absolute_event = 0;
}
switch (e->type) { switch (e->type) {
case EV_REL: case EV_REL:
evdev_process_relative_motion(e, &dx, &dy); evdev_process_relative_motion(e, &dx, &dy);

@ -103,7 +103,7 @@ tty_create(struct wlsc_compositor *compositor, tty_vt_func_t vt_func,
if (tty == NULL) if (tty == NULL)
return NULL; return NULL;
snprintf(filename, sizeof filename, "/dev/tty%d", tty_nr); snprintf(filename, sizeof filename, "/dev/tty0");
fprintf(stderr, "compositor: using %s\n", filename); fprintf(stderr, "compositor: using %s\n", filename);
memset(tty, 0, sizeof *tty); memset(tty, 0, sizeof *tty);

Loading…
Cancel
Save