Fix X button and keycodes

Not a real fix, we're just mapping them to evdev codes for now.
dev
Kristian Høgsberg 15 years ago
parent ce5325d3ed
commit f9112b2de0
  1. 13
      compositor-x11.c
  2. 2
      compositor.c

@ -24,6 +24,7 @@
#include <unistd.h> #include <unistd.h>
#include <errno.h> #include <errno.h>
#include <sys/time.h> #include <sys/time.h>
#include <linux/input.h>
#include <xcb/xcb.h> #include <xcb/xcb.h>
#include <xcb/dri2.h> #include <xcb/dri2.h>
@ -518,26 +519,22 @@ x11_compositor_handle_event(int fd, uint32_t mask, void *data)
case XCB_KEY_PRESS: case XCB_KEY_PRESS:
key_press = (xcb_key_press_event_t *) event; key_press = (xcb_key_press_event_t *) event;
notify_key(c->base.input_device, notify_key(c->base.input_device,
key_press->detail, 1); key_press->detail - 8, 1);
fprintf(stderr, "code %d, sequence %d\n",
key_press->detail, key_press->sequence);
break; break;
case XCB_KEY_RELEASE: case XCB_KEY_RELEASE:
key_press = (xcb_key_press_event_t *) event; key_press = (xcb_key_press_event_t *) event;
notify_key(c->base.input_device, notify_key(c->base.input_device,
key_press->detail, 0); key_press->detail - 8, 0);
break; break;
case XCB_BUTTON_PRESS: case XCB_BUTTON_PRESS:
button_press = (xcb_button_press_event_t *) event; button_press = (xcb_button_press_event_t *) event;
notify_button(c->base.input_device, notify_button(c->base.input_device,
button_press->detail, 1); button_press->detail + BTN_LEFT - 1, 1);
break; break;
case XCB_BUTTON_RELEASE: case XCB_BUTTON_RELEASE:
button_press = (xcb_button_press_event_t *) event; button_press = (xcb_button_press_event_t *) event;
notify_button(c->base.input_device, notify_button(c->base.input_device,
button_press->detail, 0); button_press->detail + BTN_LEFT - 1, 0);
break; break;
case XCB_MOTION_NOTIFY: case XCB_MOTION_NOTIFY:

@ -656,8 +656,6 @@ notify_button(struct wlsc_input_device *device,
struct wlsc_compositor *compositor = device->ec; struct wlsc_compositor *compositor = device->ec;
int32_t sx, sy; int32_t sx, sy;
fprintf(stderr, "notify button: button %d, state %d\n", button, state);
surface = pick_surface(device, &sx, &sy); surface = pick_surface(device, &sx, &sy);
if (surface) { if (surface) {
if (state) { if (state) {

Loading…
Cancel
Save