diff --git a/.rive_head b/.rive_head index 6dd81aad..62d82ccb 100644 --- a/.rive_head +++ b/.rive_head @@ -1 +1 @@ -90da85fbb4151a7a4a1c30cf2f6738929debe925 +24d9162103a73712ba3c80cfc909fee6948a0089 diff --git a/include/rive/layout_component.hpp b/include/rive/layout_component.hpp index 34b68745..843a4c1a 100644 --- a/include/rive/layout_component.hpp +++ b/include/rive/layout_component.hpp @@ -136,6 +136,7 @@ class LayoutComponent : public LayoutComponentBase, } bool isDisplayHidden() const; void propagateCollapse(bool collapse); + bool collapse(bool value) override; private: float m_widthOverride = NAN; diff --git a/src/layout_component.cpp b/src/layout_component.cpp index 381d3170..ffe2d4e5 100644 --- a/src/layout_component.cpp +++ b/src/layout_component.cpp @@ -206,6 +206,19 @@ void LayoutComponent::propagateCollapse(bool collapse) } } +bool LayoutComponent::collapse(bool value) +{ + if (!Component::collapse(value)) + { + return false; + } + for (Component* child : children()) + { + child->collapse(value || isDisplayHidden()); + } + return true; +} + #ifdef WITH_RIVE_LAYOUT LayoutComponent::LayoutComponent() :