diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-12-14 21:00:19 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-12-14 21:00:19 +0800 |
| commit | bc3fa9650699046f3a87a620282ee43f26b2fa75 (patch) | |
| tree | afc96df316a2507e0e8881d58cb87674760e2933 /src/ui/render | |
| parent | 3b6a59e7f163b2d2f8a07ae187b392f71b074cc4 (diff) | |
| download | cru-bc3fa9650699046f3a87a620282ee43f26b2fa75.tar.gz cru-bc3fa9650699046f3a87a620282ee43f26b2fa75.tar.bz2 cru-bc3fa9650699046f3a87a620282ee43f26b2fa75.zip | |
Fix render rect of border render object.
Diffstat (limited to 'src/ui/render')
| -rw-r--r-- | src/ui/render/BorderRenderObject.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ui/render/BorderRenderObject.cpp b/src/ui/render/BorderRenderObject.cpp index 144ad787..42cd9576 100644 --- a/src/ui/render/BorderRenderObject.cpp +++ b/src/ui/render/BorderRenderObject.cpp @@ -133,6 +133,17 @@ Thickness BorderRenderObject::GetInnerSpaceThickness() { : RenderObject::GetInnerSpaceThickness(); } +Rect BorderRenderObject::GetBorderRect() { + const auto size = GetSize(); + Rect rect{Point{}, size}; + rect = rect.Shrink(GetMargin()); + rect.left = std::min(rect.left, size.width); + rect.top = std::min(rect.top, size.height); + rect.width = std::max(rect.width, 0.0f); + rect.height = std::max(rect.height, 0.0f); + return rect; +} + Rect BorderRenderObject::GetPaddingRect() { const auto size = GetSize(); Rect rect{Point{}, size}; @@ -158,6 +169,8 @@ Rect BorderRenderObject::GetContentRect() { return rect; } +Rect BorderRenderObject::GetRenderRect() { return GetBorderRect(); } + void BorderRenderObject::RecreateGeometry() { geometry_.reset(); border_outer_geometry_.reset(); |
