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)) {