diff options
author | Lucas Zampieri <lzampier@redhat.com> | 2022-11-24 17:18:50 -0300 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2022-12-09 11:28:53 +0100 |
commit | efd83cb8b911d88a17263a4ee8e62cf07dbfa4bd (patch) | |
tree | 5ae5c45e912e30a06f836d77b93de6d2a36217cd /sway/input | |
parent | 991d75904f1460a6cc3a0b11c145bff876035897 (diff) | |
download | sway-efd83cb8b911d88a17263a4ee8e62cf07dbfa4bd.tar.xz |
Add libinput RotationAngle
This patch adds the libinput option RotationAngle to sway.
Signoff-by: Lucas Zampieri <lzampier@redhat.com>
Diffstat (limited to 'sway/input')
-rw-r--r-- | sway/input/libinput.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sway/input/libinput.c b/sway/input/libinput.c index 53019301..10bd0e35 100644 --- a/sway/input/libinput.c +++ b/sway/input/libinput.c @@ -79,6 +79,16 @@ static bool set_accel_speed(struct libinput_device *device, double speed) { return true; } +static bool set_rotation_angle(struct libinput_device *device, double angle) { + if (!libinput_device_config_rotation_is_available(device) || + libinput_device_config_rotation_get_angle(device) == angle) { + return false; + } + sway_log(SWAY_DEBUG, "rotation_set_angle(%f)", angle); + log_status(libinput_device_config_rotation_set_angle(device, angle)); + return true; +} + static bool set_accel_profile(struct libinput_device *device, enum libinput_config_accel_profile profile) { if (!libinput_device_config_accel_is_available(device) || @@ -241,6 +251,9 @@ bool sway_input_configure_libinput_device(struct sway_input_device *input_device if (ic->pointer_accel != FLT_MIN) { changed |= set_accel_speed(device, ic->pointer_accel); } + if (ic->rotation_angle != FLT_MIN) { + changed |= set_rotation_angle(device, ic->rotation_angle); + } if (ic->accel_profile != INT_MIN) { changed |= set_accel_profile(device, ic->accel_profile); } @@ -298,6 +311,8 @@ void sway_input_reset_libinput_device(struct sway_input_device *input_device) { libinput_device_config_tap_get_default_drag_lock_enabled(device)); changed |= set_accel_speed(device, libinput_device_config_accel_get_default_speed(device)); + changed |= set_rotation_angle(device, + libinput_device_config_rotation_get_default_angle(device)); changed |= set_accel_profile(device, libinput_device_config_accel_get_default_profile(device)); changed |= set_natural_scroll(device, |