aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-12-14 21:00:19 +0800
committerYuqian Yang <crupest@crupest.life>2025-12-14 21:00:19 +0800
commitbc3fa9650699046f3a87a620282ee43f26b2fa75 (patch)
treeafc96df316a2507e0e8881d58cb87674760e2933 /src
parent3b6a59e7f163b2d2f8a07ae187b392f71b074cc4 (diff)
downloadcru-bc3fa9650699046f3a87a620282ee43f26b2fa75.tar.gz
cru-bc3fa9650699046f3a87a620282ee43f26b2fa75.tar.bz2
cru-bc3fa9650699046f3a87a620282ee43f26b2fa75.zip
Fix render rect of border render object.
Diffstat (limited to 'src')
-rw-r--r--src/ui/render/BorderRenderObject.cpp13
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();