Improve collapse propagation for solo.

Fixes https://2dimensions.slack.com/archives/CLLCU09T6/p1692895941301969

Should also address #5888

Basically we were propagating the collapse to the ClippingShape for the solo which meant that the update on the clip was never called. This meant the path would never be generated and so our contents would always get clipped out (no intersection with an empty path).

ClippingShapes and Constraints should be treated more like siblings (or properties) of the Solo instead of children that can be collapsed by the active solo child choice.

Diffs=
e1b9d360b Improve collapse propagation for solo. (#5890)

Co-authored-by: Luigi Rosso <luigi-rosso@users.noreply.github.com>
diff --git a/.rive_head b/.rive_head
index 373b6de..d20bffc 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-2719b146328ddd2136232d0756ad59f3d0facc2d
+e1b9d360b4ab7a2620f888cb9b4497d253e1da80
diff --git a/src/solo.cpp b/src/solo.cpp
index 4c1fb03..fc052f2 100644
--- a/src/solo.cpp
+++ b/src/solo.cpp
@@ -1,5 +1,6 @@
 #include "rive/solo.hpp"
 #include "rive/constraints/constraint.hpp"
+#include "rive/shapes/clipping_shape.hpp"
 #include "rive/artboard.hpp"
 
 using namespace rive;
@@ -9,11 +10,19 @@
     Core* active = collapse ? nullptr : artboard()->resolve(activeComponentId());
     for (Component* child : children())
     {
-        // We don't want to collapse constraints applied to the Solo
-        if (child->is<Constraint>())
+        // Some child components shouldn't be considered as part of the solo set
+        // as they are more aking to properties of the solo itself. For those
+        // components, simply pass on the collapse value of the solo itself.
+        switch (child->coreType())
         {
-            continue;
+            case ConstraintBase::typeKey:
+            case ClippingShapeBase::typeKey:
+                child->collapse(collapse);
+                continue;
         }
+
+        // This child is part of the solo set so only make it active if it's the
+        // currently marked solo object.
         child->collapse(child != active);
     }
 }