Feat/dock concave side corners#3209
Conversation
496f077 to
e34db33
Compare
|
Rebased on latest main, addressed clang-format/clang-tidy follow-ups, and reran local validation (just format, just lint, just test, debug/release builds). |
|
Thanks for the PR. This works (by chance) because you have shadow enabled or use small radii and the inverted corners "live" in the shadow padding around the geometry. If you disabled shadows the inverted corners will clip. computeSurfaceGeometry/computePanelGeometry don't account for logicalInset as they should. Also since the concave corners only work on the screen edge corners, maybe the translations should say: "..., negative values carve a concave corner when this corner faces the screen edge"" |
6da1a32 to
200a698
Compare
|
Thanks for the review @ItsLemmy I’ve pushed a fix so computePanelGeometry now account for logicalInset, and I also updated the corner-radius wording to clarify the screen-edge behavior. I’m planning one more improvement before the final review, like moving away from negative radius values and adding an explicit toggle for concave edge corners, so users can enable this behavior directly. |
Summary
This PR adds concave (inverted) dock corner support using negative radius values, similar to bar corner behavior.
Key Changes
Summary
Motivation
Users can now create a dock shape that visually blends into edges/surfaces (e.g. concave side cuts for bottom docks), similar to V4..
Type of Change
Related Issue
Testing
Manual Coverage
Verified concave dock corners with negative radius values
Confirmed expected behavior for bottom dock with side concave cuts:
Confirmed normal convex corners still behave as before when values are non-negative
Tested on Niri
Tested on Hyprland
Tested on Sway
Tested on another compositor:
Tested with different bar positions and density settings
Tested at different interface scaling values
Tested with multiple monitors
Screenshots / Videos
recording_20260629_003202.mp4
Checklist
CONTRIBUTING.md.just formatwith clang-format v22+ installed, or this PR has no code changes.assets/translations/en.json, or this PR adds no new user-facing strings.Additional Notes