Skip to content

Gesture swipes never commit on Windows #471

Description

@Stanley5249

What happens

Holding a gesture button (Middle/Back/Forward in gesture mode) and swiping does
nothing on Windows. Only the plain click on release fires. The same binding works
on macOS and Linux.

Why

crates/openlogi-hook/src/windows.rs never emits MouseEvent::Moved — the
WH_MOUSE_LL translation handles buttons and both wheel axes, but not
WM_MOUSEMOVE. SwipeAccumulator therefore sees zero travel for the whole hold
and can never reach GESTURE_SWIPE_THRESHOLD.

The reason it was left out: WH_MOUSE_LL carries the cursor position
(MSLLHOOKSTRUCT.pt), not a delta, and the OS clamps that position to the desktop
bounds. macOS (MOUSE_EVENT_DELTA_X) and Linux (REL_X) both get the device's own
relative counts for free.

Two candidate fixes

They are alternatives, not a sequence — one of them lands.

Environment

Windows 11, OpenLogi 0.6.22, Logitech G502 X LIGHTSPEED.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions