[Bug]: Smooth scrolling breaks scroll in some components on firefox
- 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