AprilNEA / AprilNEA/OpenLogi

[Bug]: Smooth scrolling breaks scroll in some components on firefox

Open
#1,195 2 comments 2 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.3

### Operating system

macOS

### OS version & architecture

26.6.2 (arm64)

### Device model

MX Master 3 (bluetooth) + PRO X Wireless (receiver)

### 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 firefox, I loose the ability to scroll in some pages when I enable smooth scrolling. This happens with both my mice.

Example page: https://github.com/AprilNEA/OpenLogi/blob/master/Cargo.toml

If my cursor is specifically in the textarea, I am not able to scroll up/down. When I move it outside of the textarea I can scroll again.

Disabling the smooth scroll or shutting down OpenLogi makes the issue disapear. I was not able to reproduce on Google Chrome.

### Steps to reproduce

1. Open https://github.com/AprilNEA/OpenLogi/blob/master/Cargo.toml in firefox (I use **154.0.1 (aarch64)** for reference)
2. Move the cursor above the code in the textarea
3. Try scrolling => nothing happens
4. Move the cursor above the file strucure
5. Try scrolling => the page scrolls as expected

### Diagnostics report

```markdown
### OpenLogi Diagnostics

**App**
- OpenLogi (GUI): v0.8.3 (release)
- Agent: v0.8.3 (connected)
- IPC protocol: GUI 29 / agent 29
- Inventory: ready
- OS: macOS 26.6.2 (arm64)
- Locale: en-FR (UI: follow system)
- Accessibility: granted · Input hook: installed
- Launch at login: yes · Menu bar: yes · Update check: on
- Running from: source build (dev)
- Config: schema 7 · 2 configured device(s) · thumbwheel 14

**Assets**
- Source: user cache · Index: loaded (210 models) · User cache: present
- Cache path: ~/.local/share/openlogi/assets · Bundle assets: absent

**Devices (2)**
- PRO X Wireless — mouse (codename: PRO X Wireless)
- Connection: Logi Unifying receiver · Online: yes · Battery: 43% (discharging, good)
- Capabilities: buttons=no, pointer=yes, lighting=no
- Model: 04093 (wpid: 4093, model-ids: 4093/c094/0000, ext-model: 00)
- Transports: USB, eQuad
- Render: ⚠️ none (silhouette) · Slot 1
- MX Master 3 — mouse (codename: Wireless Mouse MX Master 3)
- Connection: Bluetooth (direct) · Online: yes · Battery: 20% (discharging, low)
- Capabilities: buttons=yes, pointer=yes, lighting=no
- DPI: 1000 dpi (range 200–4000, 77 steps)
- Model: 0b023 (model-ids: b023/4082/0000, ext-model: 00)
- Transports: eQuad, BTLE
- Render: mx_master_3 · direct

**Receivers (1)**
- Lightspeed Receiver (VID 046d / PID c547)
```

### `openlogi list` output

```text
(inventory read from the running agent)
Lightspeed Receiver (D80951A2, vid=046d pid=c547)
└─ slot 1 ● PRO X Wireless (mouse, wpid=4093, battery=41% good (discharging))
model_ids=[4093,c094,0000] ext=00 serial=— unit_id=3cf30440 transports=usb+equad

MX Master 3 (—, vid=046d pid=b023)
└─ slot 255 ● Wireless Mouse MX Master 3 (mouse, wpid=?, battery=20% low (discharging))
model_ids=[b023,4082,0000] ext=00 serial=— unit_id=eb9b0c85 transports=equad+btle
```

### Logs

```shell
(no agent reachable — reading hardware directly; macOS judges this process's Input Monitoring grant, not the agent's)
2026-08-31T14:49:25.478979Z DEBUG openlogi_hid::transport: logitech HID node name=USB Receiver pid=c547 usage_page=0xff00 usage_id=0x0001 matched=false
2026-08-31T14:49:25.479337Z DEBUG openlogi_hid::transport: logitech HID node name=USB Receiver pid=c547 usage_page=0xff00 usage_id=0x0002 matched=true
2026-08-31T14:49:25.479344Z DEBUG openlogi_hid::transport: logitech HID node name=USB Receiver pid=c547 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-31T14:49:25.479349Z DEBUG openlogi_hid::transport: logitech HID node name=USB Receiver pid=c547 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-31T14:49:25.479355Z DEBUG openlogi_hid::transport: logitech HID node name=MX Master 3 pid=b023 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-31T14:49:25.479360Z DEBUG openlogi_hid::transport: logitech HID node name=MX Master 3 pid=b023 usage_page=0x0001 usage_id=0x0002 matched=false
2026-08-31T14:49:25.479365Z DEBUG openlogi_hid::transport: logitech HID node name=MX Master 3 pid=b023 usage_page=0x0001 usage_id=0x0001 matched=false
2026-08-31T14:49:25.479370Z DEBUG openlogi_hid::transport: logitech HID node name=MX Master 3 pid=b023 usage_page=0xff43 usage_id=0x0202 matched=true
2026-08-31T14:49:25.479375Z DEBUG openlogi_hid::transport: logitech HID node name=USB Receiver pid=c547 usage_page=0x0001 usage_id=0x0006 matched=false
2026-08-31T14:49:25.479380Z DEBUG openlogi_hid::transport: logitech HID node name=USB Receiver pid=c547 usage_page=0x000c usage_id=0x0001 matched=false
2026-08-31T14:49:25.479385Z DEBUG openlogi_hid::transport: logitech HID node name=USB Receiver pid=c547 usage_page=0x0001 usage_id=0x0080 matched=false
2026-08-31T14:49:25.479441Z DEBUG openlogi_device::inventory: HID++ candidate interfaces count=2
2026-08-31T14:49:25.480278Z DEBUG openlogi_hid::transport: opened HID++ channel name=USB Receiver vid=046d
2026-08-31T14:49:25.500642Z DEBUG openlogi_hid::transport: opened HID++ channel name=MX Master 3 vid=046d
2026-08-31T14:49:25.504088Z DEBUG openlogi_device::inventory::probe: receiver reports pairing count pairing_count=1
2026-08-31T14:49:27.013970Z DEBUG openlogi_device::inventory::probe: drained device-arrival events events=1
2026-08-31T14:49:27.512696Z DEBUG openlogi_device::inventory::probe: BT-direct / wired device recognised os_name=MX Master 3 name=Wireless Mouse MX Master 3
2026-08-31T14:49:27.908262Z DEBUG openlogi_device::inventory::probe: unifying paired slot slot=1 online=true wpid=4093 kind=Mouse codename=Some("PRO X Wireless")
Lightspeed Receiver (D80951A2, vid=046d pid=c547)
└─ slot 1 ● PRO X Wireless (mouse, wpid=4093, battery=41% good (discharging))
model_ids=[4093,c094,0000] ext=00 serial=— unit_id=3cf30440 transports=usb+equad

MX Master 3 (—, vid=046d pid=b023)
└─ slot 255 ● Wireless Mouse MX Master 3 (mouse, wpid=?, battery=20% low (discharging))
model_ids=[b023,4082,0000] ext=00 serial=— unit_id=eb9b0c85 transports=equad+btle

(This is the end of the output OpenLogi doesn't launch from the terminal for some reason)
```

### 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 at the GUI smooth-scrolling and input-hook handling entry points, then reproduce the Firefox textarea case from the linked GitHub page with smooth scrolling enabled. Trace the behavior for both mice and verify that scrolling works over the code area without breaking the existing Chrome behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.