@@ -34,6 +34,8 @@ MirSurfaceItem::MirSurfaceItem(const QString& name,
3434 , m_parentSurface(nullptr)
3535 , m_haveInputMethod(false)
3636{
37+ qDebug() << "MirSurfaceItem::MirSurfaceItem() " << this->name();
38+
3739 QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership);
3840
3941 // The virtual keyboard (input method) has a big transparent area so that
@@ -46,6 +48,8 @@ MirSurfaceItem::MirSurfaceItem(const QString& name,
4648
4749MirSurfaceItem::~MirSurfaceItem()
4850{
51+ qDebug() << "MirSurfaceItem::~MirSurfaceItem() " << name();
52+
4953 QList<MirSurfaceItem*> children(m_children);
5054 for (MirSurfaceItem* child : children) {
5155 child->setParentSurface(nullptr);
@@ -54,7 +58,7 @@ MirSurfaceItem::~MirSurfaceItem()
5458 m_parentSurface->removeChildSurface(this);
5559
5660 if (m_application)
57− m_application->setSurface(nullptr);
61+ m_application->removeSurface(this);
5862}
5963
6064void MirSurfaceItem::paint(QPainter * painter)
@@ -75,7 +79,7 @@ void MirSurfaceItem::release()
7579 }
7680
7781 if (m_application) {
78− m_application->setSurface(nullptr);
82+ m_application->removeSurface(this);
7983 }
8084 if (!parent()) {
8185 deleteLater();
@@ -104,20 +108,24 @@ void MirSurfaceItem::setParentSurface(MirSurfaceItem* surface)
104108 Q_EMIT parentSurfaceChanged(surface);
105109}
106110
111+void MirSurfaceItem::addChildSurface(MirSurfaceItem* surface)
112+{
113+ qDebug() << "MirSurfaceItem::addChildSurface " << surface->name() << " to " << name();
114+
115+ m_children.append(surface);
116+ Q_EMIT childSurfacesChanged();
117+}
118+
107119void MirSurfaceItem::removeChildSurface(MirSurfaceItem* surface)
108120{
121+ qDebug() << "MirSurfaceItem::removeChildSurface " << surface->name() << " from " << name();
122+
109123 if (m_children.contains(surface)) {
110124 m_children.removeOne(surface);
111125 Q_EMIT childSurfacesChanged();
112126 }
113127}
114128
115−void MirSurfaceItem::addChildSurface(MirSurfaceItem* surface)
116−{
117− m_children.append(surface);
118− Q_EMIT childSurfacesChanged();
119−}
120−
121129QList<MirSurfaceItem*> MirSurfaceItem::childSurfaceList()
122130{
123131 return m_children;