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

Nate Graham <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|https://invent.kde.org/plas |https://invent.kde.org/plas
                   |ma/krdp/-/commit/433babfefc |ma/krdp/-/commit/d8c1f28634
                   |d28bf186e5d184ad8450dcd0f52 |289806e88d4ff14a53237cced05
                   |157                         |9a8

--- Comment #6 from Nate Graham <[email protected]> ---
Git commit d8c1f28634289806e88d4ff14a53237cced059a8 by Nate Graham.
Committed on 24/02/2026 at 14:29.
Pushed by ngraham into branch 'Plasma/6.6'.

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)


(cherry picked from commit 433babfefcd28bf186e5d184ad8450dcd0f52157)

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

Co-authored-by: reali es <[email protected]>

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/d8c1f28634289806e88d4ff14a53237cced059a8

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

Reply via email to