9#include <config-kwin.h>
13#include <linux/input.h>
17 return device->
keys.contains(code);
23 case LIBINPUT_DEVICE_CAP_KEYBOARD:
25 case LIBINPUT_DEVICE_CAP_POINTER:
27 case LIBINPUT_DEVICE_CAP_TOUCH:
29 case LIBINPUT_DEVICE_CAP_GESTURE:
31 case LIBINPUT_DEVICE_CAP_TABLET_TOOL:
33 case LIBINPUT_DEVICE_CAP_SWITCH:
42 return device->
name.constData();
47 return device->
sysName.constData();
73 return LIBINPUT_CONFIG_TAP_ENABLED;
75 return LIBINPUT_CONFIG_TAP_DISABLED;
82 device->
tapToClick = (enable == LIBINPUT_CONFIG_TAP_ENABLED);
83 return LIBINPUT_CONFIG_STATUS_SUCCESS;
85 return LIBINPUT_CONFIG_STATUS_INVALID;
91 return LIBINPUT_CONFIG_TAP_ENABLED;
93 return LIBINPUT_CONFIG_TAP_DISABLED;
100 return LIBINPUT_CONFIG_DRAG_ENABLED;
102 return LIBINPUT_CONFIG_DRAG_DISABLED;
109 return LIBINPUT_CONFIG_DRAG_ENABLED;
111 return LIBINPUT_CONFIG_DRAG_DISABLED;
118 device->
tapAndDrag = (enable == LIBINPUT_CONFIG_DRAG_ENABLED);
119 return LIBINPUT_CONFIG_STATUS_SUCCESS;
121 return LIBINPUT_CONFIG_STATUS_INVALID;
127 return LIBINPUT_CONFIG_DRAG_LOCK_ENABLED;
129 return LIBINPUT_CONFIG_DRAG_LOCK_DISABLED;
136 return LIBINPUT_CONFIG_DRAG_LOCK_ENABLED;
138 return LIBINPUT_CONFIG_DRAG_LOCK_DISABLED;
145 device->
tapDragLock = (enable == LIBINPUT_CONFIG_DRAG_LOCK_ENABLED);
146 return LIBINPUT_CONFIG_STATUS_SUCCESS;
148 return LIBINPUT_CONFIG_STATUS_INVALID;
160 return LIBINPUT_CONFIG_STATUS_INVALID;
163 return LIBINPUT_CONFIG_STATUS_SUCCESS;
165 return LIBINPUT_CONFIG_STATUS_INVALID;
190 for (std::size_t i = 0; i < 6; i++) {
193 return LIBINPUT_CONFIG_STATUS_SUCCESS;
198 for (std::size_t i = 0; i < 6; i++) {
206 for (std::size_t i = 0; i < 6; i++) {
219 uint32_t modes = LIBINPUT_CONFIG_SEND_EVENTS_ENABLED;
221 modes |= LIBINPUT_CONFIG_SEND_EVENTS_DISABLED;
224 modes |= LIBINPUT_CONFIG_SEND_EVENTS_DISABLED_ON_EXTERNAL_MOUSE;
263 return LIBINPUT_CONFIG_STATUS_INVALID;
266 return LIBINPUT_CONFIG_STATUS_SUCCESS;
268 return LIBINPUT_CONFIG_STATUS_INVALID;
295 return LIBINPUT_CONFIG_STATUS_INVALID;
298 return LIBINPUT_CONFIG_STATUS_SUCCESS;
300 return LIBINPUT_CONFIG_STATUS_INVALID;
306 return LIBINPUT_CONFIG_SEND_EVENTS_ENABLED;
309 return LIBINPUT_CONFIG_SEND_EVENTS_DISABLED;
365 return LIBINPUT_CONFIG_STATUS_SUCCESS;
367 return LIBINPUT_CONFIG_STATUS_INVALID;
374 return LIBINPUT_CONFIG_STATUS_SUCCESS;
376 return LIBINPUT_CONFIG_STATUS_INVALID;
382 device->
enabled = (mode == LIBINPUT_CONFIG_SEND_EVENTS_ENABLED);
383 return LIBINPUT_CONFIG_STATUS_SUCCESS;
385 return LIBINPUT_CONFIG_STATUS_INVALID;
395 return event->device;
405 if (event->
type == LIBINPUT_EVENT_KEYBOARD_KEY) {
413 switch (event->
type) {
414 case LIBINPUT_EVENT_POINTER_MOTION:
415 case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE:
416 case LIBINPUT_EVENT_POINTER_BUTTON:
417 case LIBINPUT_EVENT_POINTER_SCROLL_WHEEL:
418 case LIBINPUT_EVENT_POINTER_SCROLL_FINGER:
419 case LIBINPUT_EVENT_POINTER_SCROLL_CONTINUOUS:
428 switch (event->
type) {
429 case LIBINPUT_EVENT_TOUCH_DOWN:
430 case LIBINPUT_EVENT_TOUCH_UP:
431 case LIBINPUT_EVENT_TOUCH_MOTION:
432 case LIBINPUT_EVENT_TOUCH_CANCEL:
433 case LIBINPUT_EVENT_TOUCH_FRAME:
442 switch (event->
type) {
443 case LIBINPUT_EVENT_GESTURE_PINCH_BEGIN:
444 case LIBINPUT_EVENT_GESTURE_PINCH_UPDATE:
445 case LIBINPUT_EVENT_GESTURE_PINCH_END:
446 case LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN:
447 case LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE:
448 case LIBINPUT_EVENT_GESTURE_SWIPE_END:
457 if (event->
type == LIBINPUT_EVENT_GESTURE_PINCH_END || event->
type == LIBINPUT_EVENT_GESTURE_SWIPE_END) {
465 return event->time.count();
470 return event->fingerCount;
475 if (event->
type == LIBINPUT_EVENT_GESTURE_PINCH_UPDATE || event->
type == LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE) {
476 return event->delta.x();
483 if (event->
type == LIBINPUT_EVENT_GESTURE_PINCH_UPDATE || event->
type == LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE) {
484 return event->delta.y();
491 switch (event->
type) {
492 case LIBINPUT_EVENT_GESTURE_PINCH_BEGIN:
494 case LIBINPUT_EVENT_GESTURE_PINCH_UPDATE:
495 case LIBINPUT_EVENT_GESTURE_PINCH_END:
504 if (event->
type == LIBINPUT_EVENT_GESTURE_PINCH_UPDATE) {
505 return event->angleDelta;
522 return event->time.count();
527 return event->absolutePos.x();
532 return event->absolutePos.y();
537 double deviceWidth = 0.0;
538 double deviceHeight = 0.0;
540 return event->absolutePos.x() / deviceWidth * width;
545 double deviceWidth = 0.0;
546 double deviceHeight = 0.0;
548 return event->absolutePos.y() / deviceHeight * height;
553 return event->delta.x();
558 return event->delta.y();
563 return event->delta.x();
568 return event->delta.y();
573 return event->time.count();
578 return event->button;
583 return event->buttonState;
588 if (axis == LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL) {
589 return event->verticalAxis;
591 return event->horizontalAxis;
597 if (axis == LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL) {
598 return event->verticalScrollValue;
600 return event->horizontalScrollValue;
606 if (axis == LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL) {
607 return event->verticalScrollValueV120;
609 return event->horizontalScrollValueV120;
615 return event->time.count();
620 return event->absolutePos.x();
625 return event->absolutePos.y();
630 double deviceWidth = 0.0;
631 double deviceHeight = 0.0;
633 return event->absolutePos.x() / deviceWidth * width;
638 double deviceWidth = 0.0;
639 double deviceHeight = 0.0;
641 return event->absolutePos.y() / deviceHeight * height;
716 return LIBINPUT_CONFIG_STATUS_INVALID;
719 return LIBINPUT_CONFIG_STATUS_SUCCESS;
721 return LIBINPUT_CONFIG_STATUS_INVALID;
727 return LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED;
729 return LIBINPUT_CONFIG_MIDDLE_EMULATION_DISABLED;
736 return LIBINPUT_CONFIG_MIDDLE_EMULATION_ENABLED;
738 return LIBINPUT_CONFIG_MIDDLE_EMULATION_DISABLED;
751 return LIBINPUT_CONFIG_STATUS_INVALID;
754 return LIBINPUT_CONFIG_STATUS_SUCCESS;
756 return LIBINPUT_CONFIG_STATUS_INVALID;
778 return LIBINPUT_CONFIG_STATUS_INVALID;
781 return LIBINPUT_CONFIG_STATUS_SUCCESS;
783 return LIBINPUT_CONFIG_STATUS_INVALID;
805 return LIBINPUT_CONFIG_STATUS_INVALID;
808 return LIBINPUT_CONFIG_STATUS_SUCCESS;
810 return LIBINPUT_CONFIG_STATUS_INVALID;
822 return LIBINPUT_CONFIG_STATUS_UNSUPPORTED;
825 return LIBINPUT_CONFIG_STATUS_SUCCESS;
827 return LIBINPUT_CONFIG_STATUS_INVALID;
843 case LIBINPUT_SWITCH_LID:
845 case LIBINPUT_SWITCH_TABLET_MODE:
855 if (event->
type == LIBINPUT_EVENT_SWITCH_TOGGLE) {
864 switch (event->
state) {
866 return LIBINPUT_SWITCH_STATE_ON;
868 return LIBINPUT_SWITCH_STATE_OFF;
876 return event->time.count();
881 if (event->
type == LIBINPUT_EVENT_TABLET_PAD_BUTTON) {
882 return reinterpret_cast<libinput_event_tablet_pad *
>(event);
887struct libinput_event_tablet_tool *
890 switch (event->
type) {
891 case LIBINPUT_EVENT_TABLET_TOOL_AXIS:
892 case LIBINPUT_EVENT_TABLET_TOOL_PROXIMITY:
893 case LIBINPUT_EVENT_TABLET_TOOL_TIP:
894 return reinterpret_cast<libinput_event_tablet_tool *
>(event);
915struct libinput_device_group *
928 enum libinput_led leds)