# UNDF: UNDF-2026-000000951 --- a/src/tiled/editpolygontool.cpp +++ b/src/tiled/editpolygontool.cpp @@ -383,6 +383,8 @@ void EditPolygonTool::updateHandles() { const QList &selection = mapDocument()->selectedObjects(); + const QSet selectionSet(selection.begin(), selection.end()); + auto deleteHandle = [this](PointHandle *handle) { if (mHoveredHandle == handle) mHoveredHandle = nullptr; @@ -399,13 +401,13 @@ void EditPolygonTool::updateHandles() QMutableHashIterator > i(mHandles); while (i.hasNext()) { i.next(); - if (!selection.contains(i.key())) { + if (!selectionSet.contains(i.key())) { for (PointHandle *handle : std::as_const(i.value())) deleteHandle(handle); i.remove(); } } - if (mHoveredSegment && !selection.contains(mHoveredSegment.object)) + if (mHoveredSegment && !selectionSet.contains(mHoveredSegment.object)) mHoveredSegment.clear(); - if (mClickedSegment && !selection.contains(mClickedSegment.object)) + if (mClickedSegment && !selectionSet.contains(mClickedSegment.object)) mClickedSegment.clear();