From: Jens Peters Date: Wed, 16 Apr 2025 17:16:06 +0000 (+0200) Subject: action: add scroll-wheel-emulation actions X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=3331fcba6f751c2e4c1425a305d94d380a9ef68f;p=proto%2Flabwc.git action: add scroll-wheel-emulation actions --- diff --git a/include/labwc.h b/include/labwc.h index e1ccd7b1..98828a18 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -115,6 +115,7 @@ struct seat { struct { double x, y; } smooth_scroll_offset; + bool cursor_scroll_wheel_emulation; /* * The surface whose keyboard focus is temporarily cleared with diff --git a/src/action.c b/src/action.c index 8643bb5e..d3241df9 100644 --- a/src/action.c +++ b/src/action.c @@ -116,6 +116,9 @@ enum action_type { ACTION_TYPE_SHADE, ACTION_TYPE_UNSHADE, ACTION_TYPE_TOGGLE_SHADE, + ACTION_TYPE_ENABLE_SCROLL_WHEEL_EMULATION, + ACTION_TYPE_DISABLE_SCROLL_WHEEL_EMULATION, + ACTION_TYPE_TOGGLE_SCROLL_WHEEL_EMULATION, ACTION_TYPE_ENABLE_TABLET_MOUSE_EMULATION, ACTION_TYPE_DISABLE_TABLET_MOUSE_EMULATION, ACTION_TYPE_TOGGLE_TABLET_MOUSE_EMULATION, @@ -182,6 +185,9 @@ const char *action_names[] = { "Shade", "Unshade", "ToggleShade", + "EnableScrollWheelEmulation", + "DisableScrollWheelEmulation", + "ToggleScrollWheelEmulation", "EnableTabletMouseEmulation", "DisableTabletMouseEmulation", "ToggleTabletMouseEmulation", @@ -1309,6 +1315,16 @@ actions_run(struct view *activator, struct server *server, view_set_shade(view, false); } break; + case ACTION_TYPE_ENABLE_SCROLL_WHEEL_EMULATION: + server->seat.cursor_scroll_wheel_emulation = true; + break; + case ACTION_TYPE_DISABLE_SCROLL_WHEEL_EMULATION: + server->seat.cursor_scroll_wheel_emulation = false; + break; + case ACTION_TYPE_TOGGLE_SCROLL_WHEEL_EMULATION: + server->seat.cursor_scroll_wheel_emulation = + !server->seat.cursor_scroll_wheel_emulation; + break; case ACTION_TYPE_ENABLE_TABLET_MOUSE_EMULATION: rc.tablet.force_mouse_emulation = true; break;