- for (const auto & it : subfigure->paragraphs()) {
- for (pos_type posIn = 0; posIn < it.size(); ++posIn) {
- const Inset *inset = it.getInset(posIn);
- if (inset && dynamic_cast<const InsetFloat*>(inset)) {
- foundInsetFloat = true;
- break;
+
+ // The collapsible may already be a float (InsetFloat).
+ if (subfigure && dynamic_cast<const InsetFloat *>(subfigure))
+ foundInsetFloat = true;
+
+ // Subfigures are in boxes.
+ if (!foundInsetFloat) {
+ for (const auto &it : subfigure->paragraphs()) {
+ for (pos_type posIn = 0; posIn < it.size(); ++posIn) {
+ const Inset *inset = it.getInset(posIn);
+ if (inset && dynamic_cast<const InsetFloat *>(inset)) {
+ foundInsetFloat = true;
+ break;
+ }