srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/legacy-cpp/src/utils
diff options
context:
space:
mode:
authorsrdusr <[email protected]>2025-04-03 22:35:00 +0200
committersrdusr <[email protected]>2025-04-03 22:35:00 +0200
commit254557f94544fe8841a4e9422eee9228e7ed4152 (patch)
tree4a1197daae3571d00e9af5e779107edaca183443 /legacy-cpp/src/utils
parent4d61d76b1b73f56fc14ed977806e4d4ad313fd51 (diff)
downloadsrdwm-254557f94544fe8841a4e9422eee9228e7ed4152.tar.gz
srdwm-254557f94544fe8841a4e9422eee9228e7ed4152.zip
Fix border corner rendered as a solid wedge instead of a ring
round_top_corners/round_bottom_corners only ever cut pixels *outside* the shared corner radius (the rounded outer silhouette). Nothing cut anything *inside* it, so a border strip's own "extra" rows (present whenever corner_radius > border_width) stayed a solid filled disk out to the centre column/row, then hit clip_middle_beyond_thickness's hard, unblended rectangular cut right at the disk's own most opaque point - a clean right-angle step, not a curve. Confirmed live, zoomed: a real square notch bitten into an otherwise smooth arc, reported as "squares on the inside corners of each vertex." Added carve_inner_corner_pixel, the same smoothstep falloff as the existing outer cut but inverted (cuts near the centre instead of far from it), applied at radius - border_width so the corner becomes a genuine ring of ~border_width visible thickness tapering smoothly to transparent, instead of a filled wedge. Only render_border_top/ render_border_bottom pass an inner_radius; the titlebar's own corner and the lock-screen box keep their existing solid-disk behaviour, which is correct for a single flat-coloured panel with nothing of a different colour underneath needing to show through. Also generalizes round_top_corners with an explicit center_col parameter, mirroring the existing center_row shift: the titlebar's own corner circle was never shifted horizontally to match the border strip's (only vertically), leaving a border_width-wide sliver of the titlebar's own misaligned curve poking through at the seam. border_top_and_titlebar_corners_meet_without_a_seam and border_top_curve_actually_closes_within_the_side_strips_own_width updated to match: both now compare the correct corresponding columns (the titlebar's own buffer starts border_width columns inside the border strip's), and the latter no longer demands exact 255 opacity at a point that legitimately sits within the new inner cut's own antialiasing band.
Diffstat (limited to 'legacy-cpp/src/utils')
0 files changed, 0 insertions, 0 deletions