summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sigmodr/widgets/mapeditor/WorldMapItem.cpp9
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())
{