Mouse scroll never reaches Input on native: Wayland PointerListenerHandleAxis is an empty stub, Win32 lacks WM_MOUSEWHEEL #32
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Catcrafts/Crafter.Graphics#32
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
While wiring 3DForts' scroll-wheel device rotation (3DForts#164) to a
MouseScrollBindAxis1D action, we found the wheel input chain (Window::onMouseScroll→MouseScrollBind) only works on the DOM/wasm backend (dom-env.js wheel listener).Native is dead on both window backends:
Device::PointerListenerHandleAxisinimplementations/Crafter.Graphics-Device.cppis an empty stub — thewl_fixed_t valueis dropped, soonMouseScrollnever fires. Looks like a one-liner: convert withwl_fixed_to_double(value)(vertical axis, axis 0) and invoke the focused window's scroll event with the same sign/scale convention dom-env.js uses (one detent ≈ ±1 after normalization).WM_MOUSEWHEELcase, so the same chain is dead there too (GET_WHEEL_DELTA_WPARAM(wParam) / WHEEL_DELTAper detent).3DForts works around it for now by documenting the gap (scroll actions are rebindable to keys on native; wasm is the verify platform), but the fix belongs here. Happy to provide more detail if useful.