AprilNEA / AprilNEA/OpenLogi

[Bug]: Fractional wheel deltas are dropped on macOS when scroll processing is enabled

Open
#1,153 0 comments 0 reactions 0 assignees View on GitHub
needs: triage type: bug
Dominant language
Rust
Stars
21k
Forks
675
Avg merge
2d 5h
Merged PRs (30d)
172

Description

### Pre-flight checklist

- [x] I searched [existing issues](https://github.com/AprilNEA/OpenLogi/issues?q=is%3Aissue) and this is not a duplicate.
- [x] I am on the [latest release](https://github.com/AprilNEA/OpenLogi/releases/latest) or a recent `master` build.
- [x] I quit **Logi Options+** before running OpenLogi (the two apps fight over HID++ access and only one can own a receiver at a time).

### Which part of OpenLogi?

GUI (desktop app)

### OpenLogi version

0.8.1

### Operating system

macOS

### OS version & architecture

macOS 26.6.2, Apple Silicon (arm64)

### Device model

MX Anywhere 3S

### How is the device connected?

Bluetooth (direct, no receiver)

### Affected area(s)

- [ ] Device discovery / detection
- [ ] Button remapping
- [ ] DPI control
- [ ] SmartShift
- [ ] Per-application profiles
- [ ] Battery status
- [ ] Settings / configuration (TOML)
- [ ] Auto-update
- [ ] Menu bar / tray
- [x] Other

### What happened?

On macOS with an MX Anywhere 3S, slow wheel inputs are sometimes ignored when OpenLogi is processing the scroll events.

With vertical scroll sensitivity at the default value of 14 and Smooth Scrolling off, the wheel behaves normally and each slow detent scrolls immediately.

If I change the sensitivity to another value, for example 20, slow single-detent scrolling may do nothing. After several detents, the page suddenly moves. The same thing happens if I keep sensitivity at 14 but enable Smooth Scrolling.

Fast scrolling works normally.

I traced this to the macOS scroll injection path. Fractional wheel deltas can be lost during quantization, so small inputs end up producing zero movement.

Expected behavior: changing scroll sensitivity or enabling Smooth Scrolling should not cause slow wheel detents to be dropped.

I have a patch that fixes the issue and have tested it on the same MX Anywhere 3S.

### Steps to reproduce

1. Connect an MX Anywhere 3S to macOS and quit Logi Options+.
2. Open OpenLogi.
3. Set vertical scroll sensitivity to 14 and turn Smooth Scrolling off.
4. Scroll slowly, one wheel detent at a time. Each detent should respond normally.
5. Change vertical scroll sensitivity to 20.
6. Scroll slowly again. Some detents produce no movement, and the page only moves after several inputs.
7. Set sensitivity back to 14 and enable Smooth Scrolling.
8. Slow single-detent scrolling shows the same problem.

### Diagnostics report

```markdown

```

### `openlogi list` output

```text

```

### Logs

```shell

```

### macOS permissions (if applicable)

- [x] OpenLogi has **Accessibility** permission (needed to remap buttons via the event tap).
- [x] OpenLogi has **Input Monitoring** permission (needed for Bluetooth-direct devices and capture).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start from the macOS scroll injection path and the fractional-delta quantization described in the issue. Reproduce with an MX Anywhere 3S using sensitivity 20 or Smooth Scrolling, then verify that slow single-detent inputs are no longer dropped and fast scrolling remains unaffected.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.