https://bugs.kde.org/show_bug.cgi?id=511029

David Edmundson <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://invent.kde.org/plas
                   |                            |ma/krdp/-/commit/433babfefc
                   |                            |d28bf186e5d184ad8450dcd0f52
                   |                            |157
         Resolution|---                         |FIXED
             Status|ASSIGNED                    |RESOLVED

--- Comment #5 from David Edmundson <[email protected]> ---
Git commit 433babfefcd28bf186e5d184ad8450dcd0f52157 by David Edmundson, on
behalf of reali es.
Committed on 24/02/2026 at 13:13.
Pushed by davidedmundson into branch 'master'.

Fix scroll wheel for RDP clients sending high-resolution or zero-position
events

## Summary

Some RDP clients, notably Microsoft Remote Desktop for Mac, send wheel events
with:
1. **(0,0) as the mouse position** — MRD omits cursor coordinates for wheel
events
2. **Sub-120 axis rotation values** — macOS smooth scrolling sends
high-resolution deltas (1-22 per event) instead of the standard 120 per wheel
notch

This caused scrolling to be completely non-functional with MRD on both the
Portal and Plasma screencast session paths.

### Changes

- **InputHandler.cpp**: Track last known mouse position from move events and
substitute it when a wheel event arrives with a null position
- **PortalSession.cpp**: Switch from `NotifyPointerAxisDiscrete` (integer
steps, truncates sub-120 values to 0) to `NotifyPointerAxis` (smooth scroll,
preserves sub-notch precision)
- **PlasmaScreencastV1Session.cpp**: Fix `wl_fixed_t` conversion using
`wl_fixed_from_double()` (was passing raw int, making values ~256x smaller than
intended)
- Both session paths now convert Qt angleDelta (1/8-degree units) to degrees by
dividing by 8, producing 15.0 per standard notch — matching libinput's wheel
axis convention

### Test plan

- [x] Connect with Microsoft Remote Desktop for Mac — scrolling should work in
both directions with natural speed
- [x] Connect with xfreerdp/standard RDP client — verify scrolling still works
correctly (standard 120-per-notch values)
- [ ] Test horizontal scrolling if client supports it
- [x] Verify mouse position is correct during scroll (not jumping to top-left
corner)

M  +31   -4    src/InputHandler.cpp
M  +7    -3    src/PlasmaScreencastV1Session.cpp
M  +6    -7    src/PortalSession.cpp

https://invent.kde.org/plasma/krdp/-/commit/433babfefcd28bf186e5d184ad8450dcd0f52157

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to