mirror of
https://github.com/labwc/labwc.git
synced 2026-02-17 22:05:30 -05:00
libinput: implement threeFingerDrag feature
This commit is contained in:
parent
22d319cce8
commit
e96b5af42d
7 changed files with 47 additions and 1 deletions
|
|
@ -24,6 +24,7 @@ libinput_category_init(struct libinput_category *l)
|
|||
#else
|
||||
l->drag_lock = -1;
|
||||
#endif
|
||||
l->three_finger_drag = -1;
|
||||
l->accel_profile = -1;
|
||||
l->middle_emu = -1;
|
||||
l->dwt = -1;
|
||||
|
|
|
|||
|
|
@ -788,6 +788,27 @@ fill_libinput_category(char *nodename, char *content, struct parser_state *state
|
|||
state->current_libinput_category->drag_lock = ret
|
||||
? LIBINPUT_CONFIG_DRAG_LOCK_ENABLED
|
||||
: LIBINPUT_CONFIG_DRAG_LOCK_DISABLED;
|
||||
} else if (!strcasecmp(nodename, "threeFingerDrag")) {
|
||||
#if HAVE_LIBINPUT_CONFIG_3FG_DRAG_ENABLED_3FG
|
||||
if (!strcmp(content, "3")) {
|
||||
state->current_libinput_category->three_finger_drag =
|
||||
LIBINPUT_CONFIG_3FG_DRAG_ENABLED_3FG;
|
||||
} else if (!strcmp(content, "4")) {
|
||||
state->current_libinput_category->three_finger_drag =
|
||||
LIBINPUT_CONFIG_3FG_DRAG_ENABLED_4FG;
|
||||
} else {
|
||||
int ret = parse_bool(content, -1);
|
||||
if (ret < 0) {
|
||||
return;
|
||||
}
|
||||
state->current_libinput_category->three_finger_drag = ret
|
||||
? LIBINPUT_CONFIG_3FG_DRAG_ENABLED_3FG
|
||||
: LIBINPUT_CONFIG_3FG_DRAG_DISABLED;
|
||||
}
|
||||
#else
|
||||
wlr_log(WLR_ERROR, "<threeFingerDrag> is only"
|
||||
" supported in libinput >= 1.28");
|
||||
#endif
|
||||
} else if (!strcasecmp(nodename, "accelProfile")) {
|
||||
state->current_libinput_category->accel_profile =
|
||||
get_accel_profile(content);
|
||||
|
|
|
|||
11
src/seat.c
11
src/seat.c
|
|
@ -164,6 +164,17 @@ configure_libinput(struct wlr_input_device *wlr_input_device)
|
|||
libinput_dev, dc->drag_lock);
|
||||
}
|
||||
|
||||
#if HAVE_LIBINPUT_CONFIG_3FG_DRAG_ENABLED_3FG
|
||||
if (libinput_device_config_tap_get_finger_count(libinput_dev) <= 0
|
||||
|| dc->three_finger_drag < 0) {
|
||||
wlr_log(WLR_INFO, "three-finger drag not configured");
|
||||
} else {
|
||||
wlr_log(WLR_INFO, "three-finger drag configured");
|
||||
libinput_device_config_3fg_drag_set_enabled(
|
||||
libinput_dev, dc->three_finger_drag);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (libinput_device_config_scroll_has_natural_scroll(libinput_dev) <= 0
|
||||
|| dc->natural_scroll < 0) {
|
||||
wlr_log(WLR_INFO, "natural scroll not configured");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue