srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/crates/wayland/src/state/geometry.rs
diff options
context:
space:
mode:
authorsrdusr <[email protected]>2025-03-07 22:07:00 +0200
committersrdusr <[email protected]>2025-03-07 22:07:00 +0200
commit9667308e6def22e9b1fa352357a788749ad92c74 (patch)
tree5fa0158eba3b3f6fa71c410bc5d2b19f70c018aa /crates/wayland/src/state/geometry.rs
parent4c97f8647b9543abefbed3ece209d335de6aa9d6 (diff)
downloadsrdwm-9667308e6def22e9b1fa352357a788749ad92c74.tar.gz
srdwm-9667308e6def22e9b1fa352357a788749ad92c74.zip
Fix stale ghost content after window move/resize/close on real hardware
The udev backend's damage tracking only forced a full repaint (ages = [0, 0]) on a workspace switch or a VT-switch resume. An ordinary move/resize/open/close/restack within the same workspace relied entirely on OutputDamageTracker's own per-element diffing to compute correct damage for the region a window vacated - which doesn't always hold: maximizing a window over a second one, then un-maximizing, left a persistent ghost of the second window's old titlebar/status text sitting in the vacated corner, unchanged across multiple otherwise- idle frames. render_udev_frame now also hashes every visible window's id and rect each frame and forces the same full-repaint reset whenever that signature changes - the same "defensive, not a fix for a proven bug in the diffing itself" reasoning the existing workspace-switch reset already uses, just triggered by a second, complementary condition.
Diffstat (limited to 'crates/wayland/src/state/geometry.rs')
0 files changed, 0 insertions, 0 deletions