diff options
author | crupest <crupest@outlook.com> | 2019-03-23 18:01:24 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-03-23 18:01:24 +0800 |
commit | 3ee6e0bc3675689c5f24d36bbecb7ca1bc93d433 (patch) | |
tree | 98475607fdbb060b3b6db97d2d82137938cc4d9d /src/ui/render/flex_layout_render_object.cpp | |
parent | 39d2c8b3d957e75c3a2a1c738c1628e3eb5c0173 (diff) | |
download | cru-3ee6e0bc3675689c5f24d36bbecb7ca1bc93d433.tar.gz cru-3ee6e0bc3675689c5f24d36bbecb7ca1bc93d433.tar.bz2 cru-3ee6e0bc3675689c5f24d36bbecb7ca1bc93d433.zip |
...
Diffstat (limited to 'src/ui/render/flex_layout_render_object.cpp')
-rw-r--r-- | src/ui/render/flex_layout_render_object.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/ui/render/flex_layout_render_object.cpp b/src/ui/render/flex_layout_render_object.cpp index 5383c462..4708d187 100644 --- a/src/ui/render/flex_layout_render_object.cpp +++ b/src/ui/render/flex_layout_render_object.cpp @@ -33,8 +33,16 @@ RenderObject* FlexLayoutRenderObject::HitTest(const Point& point) { return result; } } - return Rect{Point::Zero(), GetSize()}.IsPointInside(point) ? this : nullptr; -} + + const auto margin = GetMargin(); + const auto size = GetSize(); + return Rect{margin.left, margin.top, + std::max(size.width - margin.GetHorizontalTotal(), 0.0f), + std::max(size.height - margin.GetVerticalTotal(), 0.0f)} + .IsPointInside(point) + ? this + : nullptr; +} // namespace cru::ui::render void FlexLayoutRenderObject::OnAddChild(RenderObject* new_child, int position) { child_layout_data_.emplace(child_layout_data_.cbegin() + position); |