https://bugs.kde.org/show_bug.cgi?id=523515
--- Comment #3 from Marcus <[email protected]> --- Update: I have now reproduced this and verified a fix at runtime on Plasma/KWin 6.6.4 (Wayland), with an InputCapture consumer (Deskflow) using a screen-edge barrier. Reproduction (unpatched, stock 6.6.4): with an active InputCapture session, killing the xdg-desktop-portal frontend (systemctl --user kill -s ABRT xdg-desktop-portal.service) and then crossing the barrier freezes all input - the compositor keeps rendering (mouse-shake still triggers the shake-cursor effect) but no pointer or keyboard events get through, because KWin's capture filter is never removed. Recovery required restarting the backend/frontend out of band. Fix: tie the InputCapture session to the lifetime of the requesting client. In InputCapturePortal, when the capture is set up, install a QDBusServiceWatcher(WatchForUnregistration) on the caller (the frontend, i.e. the sender of Start), parented to the Session so its lifetime matches the capture, and call session->close() on serviceUnregistered. That drives the existing Session::closed -> removeInputCapture teardown, which already works - it just never fired on the frontend-death path. (This mirrors the intent of the watcher in appchooser.cpp, but with the watcher owned by the session so it actually outlives the call.) Result (patched): the same frontend kill now logs "Input capture requester .../portal... disappeared, releasing capture" and input remains fully responsive across the barrier - no freeze. This was verified with the machine's own out-of-band auto-recovery disabled, so the patched watcher was the only thing that could release the capture. I'll open a merge request against xdg-desktop-portal-kde with this change and link it here. -- You are receiving this mail because: You are watching all bug changes.
