diff options
| author | srdusr <[email protected]> | 2025-03-03 01:47:00 +0200 |
|---|---|---|
| committer | srdusr <[email protected]> | 2025-03-03 01:47:00 +0200 |
| commit | f83082a3b9b75e6f1bc4187850bea1b7408cffca (patch) | |
| tree | 4135aaa04f4aeea60a597062883d0bcf9c7f2867 /legacy-cpp | |
| parent | d303c276e289c9c7146cf74ccad2743246922248 (diff) | |
| download | srdwm-f83082a3b9b75e6f1bc4187850bea1b7408cffca.tar.gz srdwm-f83082a3b9b75e6f1bc4187850bea1b7408cffca.zip | |
Fix VT-switch DPMS blank-screen and CSD corner-crop staircase bugs
VT-switch resume: reasserting the CRTC's mode-setting state was never
enough on its own - display power (DPMS) is separate KMS state, and
nothing here ever touched it after a real switch-away-and-back. Page
flips kept succeeding with zero errors logged for the rest of a real
30+ minute session while the panel itself simply stayed dark, which is
what actually explains a user report of the screen and keyboard input
never recovering after one VT switch. Sets DPMS-on unconditionally on
every resume now, the same property zwlr_output_power_v1 already
writes for an explicit client request.
Corner rendering: both backends' side-strip crop (the fix that keeps a
window's flat left/right border strips from poking a solid-coloured
square through the top/bottom strip's own rounded curve) only ever
activated for `w.decorated` windows. An undecorated/CSD window's crop
depends on its *content* actually getting masked to match - the
winit backend never checked that at all, so every CSD window with a
nonzero border_width got the uncropped, "staircase" artifact
unconditionally, confirmed live via a highlighted border colour and
raw pixel sampling. Ported the udev backend's own `border_curve_is_safe`
check (decorated OR content-will-be-masked) into winit, using the
cheap "does this surface have subsurface children" test both content-
masking code paths already gate success on, rather than duplicating
either one's real (comparatively expensive) rendering work just to
probe it.
Full workspace build + clippy -D warnings + test suite (378 tests) green.
Diffstat (limited to 'legacy-cpp')
0 files changed, 0 insertions, 0 deletions