int fd;
struct {
const struct input_absinfo *absinfo_x, *absinfo_y;
- int32_t x, y;
+ int fake_resolution;
+ int32_t x, y;
int32_t seat_slot;
int apply_calibration;
struct {
struct motion_filter *filter;
} pointer;
+
+ /* Bitmask of pressed keys used to ignore initial release events from
+ * the kernel. */
+ unsigned long key_mask[NLONGS(KEY_CNT)];
+ /* Key counter used for multiplexing button events internally in
+ * libinput. */
+ uint8_t key_count[KEY_CNT];
};
#define EVDEV_UNHANDLED_DEVICE ((struct evdev_device *) 1)
uint32_t height);
void
+evdev_keyboard_notify_key(struct evdev_device *device,
+ uint32_t time,
+ int key,
+ enum libinput_key_state state);
+
+void
+evdev_pointer_notify_button(struct evdev_device *device,
+ uint32_t time,
+ int button,
+ enum libinput_button_state state);
+
+void
evdev_device_remove(struct evdev_device *device);
void