Skip to content

Handle fractional macOS horizontal scroll deltas#198

Open
liuxuAP369 wants to merge 1 commit into
TomBadash:masterfrom
liuxuAP369:fix-macos-fractional-hscroll-threshold
Open

Handle fractional macOS horizontal scroll deltas#198
liuxuAP369 wants to merge 1 commit into
TomBadash:masterfrom
liuxuAP369:fix-macos-fractional-hscroll-threshold

Conversation

@liuxuAP369

Copy link
Copy Markdown

macOS can report Logitech horizontal tilt wheel movement as small fractional deltas. With the default threshold at 1, devices like the M720 require many tilt events before a mapped horizontal-scroll action fires, making desktop/browser mappings appear unresponsive. Lower the default threshold to the existing minimum effective value and allow saved integer thresholds to remain compatible with the float default.

Constraint: Observed M720 macOS delta is about 0.100006 per tilt event

Rejected: Device-specific M720 special case | other Logitech devices can emit the same fractional macOS wheel deltas

Confidence: high

Scope-risk: narrow

Tested: python -m unittest tests.test_config tests.test_engine

Not-tested: Full app GUI regression

macOS can report Logitech horizontal tilt wheel movement as small fractional deltas. With the default threshold at 1, devices like the M720 require many tilt events before a mapped horizontal-scroll action fires, making desktop/browser mappings appear unresponsive. Lower the default threshold to the existing minimum effective value and allow saved integer thresholds to remain compatible with the float default.

Constraint: Observed M720 macOS delta is about 0.100006 per tilt event

Rejected: Device-specific M720 special case | other Logitech devices can emit the same fractional macOS wheel deltas

Confidence: high

Scope-risk: narrow

Tested: python -m unittest tests.test_config tests.test_engine

Not-tested: Full app GUI regression
davidnoyes pushed a commit to davidnoyes/Mouser that referenced this pull request Jun 26, 2026
…#181, TomBadash#184, TomBadash#185, TomBadash#191, TomBadash#193, TomBadash#195, TomBadash#196, TomBadash#198, TomBadash#216)

Merge and adapt the following upstream pull requests, resolving conflicts
with MX Master 4 haptic and Actions Ring features:

Clean merges:
- PR TomBadash#193: symlink-safe config save via os.path.realpath()
- PR TomBadash#198: fractional hscroll threshold (0.1 default, int/float compat)
- PR TomBadash#185: pass through OS mouse events when no Logitech device connected
- PR TomBadash#180: persist hardware-reported DPI across restarts
- PR TomBadash#181: memoize Backend list properties for QML UI performance
- PR TomBadash#195: ping-pong desktop cycling action (macOS Spaces)

Conflict-resolution merges:
- PR TomBadash#196: nested macOS app identity matching with tuple identities
- PR TomBadash#191: Shift+wheel horizontal scroll translation (cross-platform)
- PR TomBadash#216 (partial): phase-aware trackpad filter + 0.01 hscroll floor

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant