diff --git a/.rive_head b/.rive_head index e559046b..75efa189 100644 --- a/.rive_head +++ b/.rive_head @@ -1 +1 @@ -8826406ff178cf3e63341087d1611811cc32ced5 +ad1ca22bd5911398018c9a6883e4cba7a1b07c53 diff --git a/src/artboard.cpp b/src/artboard.cpp index 193b5fe3..7c60667d 100644 --- a/src/artboard.cpp +++ b/src/artboard.cpp @@ -789,6 +789,7 @@ void Artboard::markLayoutDirty(LayoutComponent* layoutComponent) { m_host->as()->markNestedLayoutDirty(); } + addDirt(ComponentDirt::Components); } bool Artboard::syncStyleChanges() diff --git a/src/layout_component.cpp b/src/layout_component.cpp index c8d532d8..3211082b 100644 --- a/src/layout_component.cpp +++ b/src/layout_component.cpp @@ -70,7 +70,9 @@ void LayoutComponent::update(ComponentDirt value) m_WorldTransform = Mat2D::multiply(parentWorld, transform); updateConstraints(); } - if (hasDirt(value, ComponentDirt::Path)) + if (hasDirt(value, + ComponentDirt::Path | ComponentDirt::WorldTransform | + ComponentDirt::LayoutStyle)) { updateRenderPath(); } diff --git a/src/nested_artboard.cpp b/src/nested_artboard.cpp index 9c72916e..d5235c82 100644 --- a/src/nested_artboard.cpp +++ b/src/nested_artboard.cpp @@ -365,12 +365,14 @@ bool NestedArtboard::advanceComponent(float elapsedSeconds, AdvanceFlags flags) auto advancingFlags = flags | AdvanceFlags::AdvanceNested & ~AdvanceFlags::IsRoot; - m_Artboard->advanceInternal(elapsedSeconds, advancingFlags); + if (m_Artboard->advanceInternal(elapsedSeconds, advancingFlags)) + { + keepGoing = true; + } if (m_Artboard->hasDirt(ComponentDirt::Components)) { // The animation(s) caused the artboard to need an update. addDirt(ComponentDirt::Components); - keepGoing = true; } return keepGoing;