diff options
| -rw-r--r-- | sigmodr/widgets/mapeditor/WorldMapItem.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sigmodr/widgets/mapeditor/WorldMapItem.cpp b/sigmodr/widgets/mapeditor/WorldMapItem.cpp index 770568c4..3eec27b7 100644 --- a/sigmodr/widgets/mapeditor/WorldMapItem.cpp +++ b/sigmodr/widgets/mapeditor/WorldMapItem.cpp @@ -154,9 +154,16 @@ void WorldMapItem::keyPressEvent(QKeyEvent* event) QList<QGraphicsItem*> items; if (!m_locked) { - items = scene()->items(QRectF(scenePos(), QRectF(scenePos(), QSizeF(m_map->width(), m_map->height())).size())); + items = scene()->items(QRectF(scenePos(), QSizeF(m_map->width(), m_map->height()))); QtConcurrent::blockingFilter(items, isSetWorldMapItem); items.removeAll(this); + QMutableListIterator<QGraphicsItem*> i(items); + while (i.hasNext()) + { + i.next(); + if (!collidesWithItem(i.value())) + i.remove(); + } } if (!items.size()) { |
