action: add scroll-wheel-emulation actions

This commit is contained in:
Jens Peters 2025-04-16 19:16:06 +02:00 committed by Hiroaki Yamamoto
parent cb58156904
commit 3331fcba6f
2 changed files with 17 additions and 0 deletions

View file

@ -115,6 +115,7 @@ struct seat {
struct { struct {
double x, y; double x, y;
} smooth_scroll_offset; } smooth_scroll_offset;
bool cursor_scroll_wheel_emulation;
/* /*
* The surface whose keyboard focus is temporarily cleared with * The surface whose keyboard focus is temporarily cleared with

View file

@ -116,6 +116,9 @@ enum action_type {
ACTION_TYPE_SHADE, ACTION_TYPE_SHADE,
ACTION_TYPE_UNSHADE, ACTION_TYPE_UNSHADE,
ACTION_TYPE_TOGGLE_SHADE, 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_ENABLE_TABLET_MOUSE_EMULATION,
ACTION_TYPE_DISABLE_TABLET_MOUSE_EMULATION, ACTION_TYPE_DISABLE_TABLET_MOUSE_EMULATION,
ACTION_TYPE_TOGGLE_TABLET_MOUSE_EMULATION, ACTION_TYPE_TOGGLE_TABLET_MOUSE_EMULATION,
@ -182,6 +185,9 @@ const char *action_names[] = {
"Shade", "Shade",
"Unshade", "Unshade",
"ToggleShade", "ToggleShade",
"EnableScrollWheelEmulation",
"DisableScrollWheelEmulation",
"ToggleScrollWheelEmulation",
"EnableTabletMouseEmulation", "EnableTabletMouseEmulation",
"DisableTabletMouseEmulation", "DisableTabletMouseEmulation",
"ToggleTabletMouseEmulation", "ToggleTabletMouseEmulation",
@ -1309,6 +1315,16 @@ actions_run(struct view *activator, struct server *server,
view_set_shade(view, false); view_set_shade(view, false);
} }
break; 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: case ACTION_TYPE_ENABLE_TABLET_MOUSE_EMULATION:
rc.tablet.force_mouse_emulation = true; rc.tablet.force_mouse_emulation = true;
break; break;