diff --git a/src/multisplitter/Anchor.cpp b/src/multisplitter/Anchor.cpp index 2835e1c3..4cafe580 100644 --- a/src/multisplitter/Anchor.cpp +++ b/src/multisplitter/Anchor.cpp @@ -269,6 +269,19 @@ bool Anchor::hasItems(Anchor::Side side) const } } +bool Anchor::onlyHasPlaceholderItems(Anchor::Side side) const +{ + auto &items = side == Side1 ? m_side1Items + : m_side2Items; + + for (Item *item : items) { + if (!item->isPlaceholder()) + return false; + } + + return true; +} + bool Anchor::hasNonPlaceholderItems(Anchor::Side side) const { auto &items = side == Side1 ? m_side1Items diff --git a/src/multisplitter/Anchor_p.h b/src/multisplitter/Anchor_p.h index 02266b25..e6acabeb 100644 --- a/src/multisplitter/Anchor_p.h +++ b/src/multisplitter/Anchor_p.h @@ -186,7 +186,8 @@ public: bool isEmpty() const { return !hasItems(Side1) && !hasItems(Side2); } bool hasItems(Side) const; bool hasNonPlaceholderItems(Side) const; - bool shouldFollow() const{ return !isStatic() && (!hasNonPlaceholderItems(Side1) || !hasNonPlaceholderItems(Side2)) && !isFollowing(); } + bool onlyHasPlaceholderItems(Anchor::Side side) const; + bool shouldFollow() const { return !isStatic() && (onlyHasPlaceholderItems(Side1) || onlyHasPlaceholderItems(Side2)) && !isFollowing(); } bool containsItem(const Item *w, Side side) const; bool isStaticOrFollowsStatic() const;