evdev: use last output from compositor to get the screen geometries

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
dev
Tiago Vignatti 14 years ago committed by Kristian Høgsberg
parent 8be003baba
commit bbc2e03b2a
  1. 11
      compositor/evdev.c

@ -87,11 +87,12 @@ evdev_process_key(struct evdev_input_device *device,
static inline void static inline void
evdev_process_absolute_motion(struct evdev_input_device *device, evdev_process_absolute_motion(struct evdev_input_device *device,
struct input_event *e, int value, int *x, int *y, struct input_event *e, int value, int *x, int *y,
int *absolute_event) int *absolute_event, struct wlsc_compositor *ec)
{ {
/* FIXME: Obviously we need to not hardcode these here, but const int screen_width = container_of(ec->output_list.prev,
* instead get the values from the output it's associated with. */ struct wlsc_output, link)->current->width;
const int screen_width = 1024, screen_height = 600; const int screen_height = container_of(ec->output_list.prev,
struct wlsc_output, link)->current->height;
switch (e->code) { switch (e->code) {
case ABS_X: case ABS_X:
@ -197,7 +198,7 @@ evdev_input_device_data(int fd, uint32_t mask, void *data)
e, value, &dx, &dy); e, value, &dx, &dy);
else else
evdev_process_absolute_motion(device, e, value, evdev_process_absolute_motion(device, e, value,
&x, &y, &absolute_event); &x, &y, &absolute_event, ec);
break; break;
case EV_KEY: case EV_KEY:
if (value == 2) if (value == 2)

Loading…
Cancel
Save