fix(thumbwheel): scale remapped vertical scrolling - #925
Open
hsearcy wants to merge 2 commits into
Open
Conversation
Greptile SummaryRoutes remapped vertical thumb-wheel actions through the same sensitivity-scaled accumulator and cross-platform injection path as horizontal scrolling.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains; the active scroll-binding identity now prevents fractional progress from crossing axes or directions after a live binding change.
|
| Filename | Overview |
|---|---|
| crates/openlogi-agent-core/src/watchers/gesture.rs | Adds axis-aware continuous scrolling and resets retained fractional progress whenever the effective scroll binding changes, resolving the previous accumulator-crossing issue. |
| crates/openlogi-inject/src/inject.rs | Generalizes diverted thumb-wheel reinjection to explicit horizontal and vertical deltas. |
| crates/openlogi-inject/src/inject/macos.rs | Emits both scroll axes through the Core Graphics line-scroll event. |
| crates/openlogi-inject/src/inject/windows.rs | Emits vertical and horizontal wheel inputs with the appropriate Win32 event flags. |
| crates/openlogi-desktop/src/features/mouse/thumbwheel.rs | Adds and tests the reversed vertical-scroll preset and its action pair. |
Reviews (2): Last reviewed commit: "fix(thumbwheel): isolate fractional bind..." | Re-trigger Greptile
hsearcy
force-pushed
the
fix/thumbwheel-vertical-scroll
branch
from
August 24, 2026 14:34
59ed9e1 to
c005054
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Remapped thumb-wheel
ScrollUp/ScrollDownactions currently go through the discrete-action path, sothumbwheel_sensitivitychanges their trigger threshold but not the amount scrolled. On affected devices this produces the very slow vertical scrolling reported in #737, and setting the sensitivity as high as 100 still does not meaningfully change the scroll distance.Route vertical scroll actions through the same continuous, native-resolution-aware accumulator used by horizontal thumb-wheel scrolling. The configured sensitivity is now a proportional multiplier for either scroll axis.
Changes
openlogi-agent-core: treat all four scroll actions as continuous thumb-wheel output, carrying explicit horizontal and vertical deltas; add vertical-axis regression coverage.openlogi-inject: generalize diverted thumb-wheel injection to(delta_x, delta_y)on macOS, Linux, and Windows.openlogi-core: document that thumb-wheel sensitivity scales remapped vertical scrolling too.openlogi-desktop: add aVertical Scroll (Reversed)thumb-wheel preset and cover its binding pair.openlogi-ui: add the new preset label to every locale catalog.Related work
Testing
cargo fmt --all -- --checkcargo clippy --workspace --all-targets -- -D warningscargo test -p openlogi-agent-core watchers::gesture::tests— 16 passed, including binding-change accumulator isolationcargo test -p openlogi-desktop thumbwheel— 12 passedcargo test -p openlogi-desktop services::i18n::tests::locale_file_resolves_keys— passedcargo test -p openlogi-ui locale— 3 passedcargo check -p openlogi-injectcargo doc -p openlogi-inject -p openlogi-agent-core --no-deps --document-private-itemswithRUSTDOCFLAGS=-D warningscargo test --workspacepasses all product and feature suites locally, but the command exits on an existing Windows-onlyxtaskassertion: its workflow parser joins\\\ncontinuations while this checkout contains\\\r\n. The full non-GUI rustdoc command likewise reaches an existing Windows-gated broken link inopenlogi-permissions; warnings-denied rustdoc passes for both changed non-GUI crates.Not runtime-tested on hardware. The Windows injector compiled on the test host; macOS and Linux injection branches were hand-audited but not compiled locally.
Fixes #737