From 74e5ca1b579b5e266ac632c0fb997a44469e57b1 Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Wed, 12 Aug 2026 19:44:03 +0200 Subject: [PATCH] Fix crash when rapidly inserting / removing macro segments --- lib/macro/macro-segment-list.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/macro/macro-segment-list.cpp b/lib/macro/macro-segment-list.cpp index 991a265f..f9bdb101 100644 --- a/lib/macro/macro-segment-list.cpp +++ b/lib/macro/macro-segment-list.cpp @@ -463,7 +463,17 @@ void MacroSegmentList::SetupVisibleMacroSegmentWidgets() const auto viewportRect = viewport()->rect(); - for (auto segment : widget()->findChildren()) { + for (int i = 0; i < _contentLayout->count(); ++i) { + auto item = _contentLayout->itemAt(i); + if (!item) { + continue; + } + + auto segment = dynamic_cast(item->widget()); + if (!segment) { + continue; + } + const auto pos = segment->mapTo(viewport(), QPoint(0, 0)); const QRect rect(pos, segment->size()); if (!viewportRect.intersects(rect)) {