]> git.mdlowis.com Git - proto/labwc.git/commitdiff
action: add scroll-wheel-emulation actions
authorJens Peters <jp7677@gmail.com>
Wed, 16 Apr 2025 17:16:06 +0000 (19:16 +0200)
committerHiroaki Yamamoto <hrak1529@gmail.com>
Tue, 6 May 2025 18:47:37 +0000 (03:47 +0900)
include/labwc.h
src/action.c

index e1ccd7b15effced9cb475814cea15aa339b8b3af..98828a18b60cbd32de9366079bbea2983c1e8d24 100644 (file)
@@ -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
index 8643bb5e843b15970d155aae3c578a1506d3a504..d3241df9627d992515d18292e36035a950424c6f 100644 (file)
@@ -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;