@@ -16,6 +16,7 @@
1616
1717#include "Session.h"
1818#include "ApplicationInfo.h"
19+#include "SessionManager.h"
1920#include "SurfaceManager.h"
2021
2122#include <QPainter>
@@ -59,7 +60,6 @@ Session::~Session()
5960void Session::release()
6061{
6162 qDebug() << "Session::release " << name();
62− Q_EMIT aboutToBeDestroyed();
6363
6464 if (m_parentSession) {
6565 m_parentSession->removeChildSession(this);
@@ -89,6 +89,7 @@ void Session::setSurface(MirSurfaceItem* surface)
8989 if (m_surface) {
9090 m_surface->setSession(nullptr);
9191 m_surface->setParent(nullptr);
92+ Q_EMIT m_surface->deregister();
9293 }
9394
9495 m_surface = surface;
@@ -96,6 +97,7 @@ void Session::setSurface(MirSurfaceItem* surface)
9697 if (m_surface) {
9798 m_surface->setSession(this);
9899 m_surface->setParent(this);
100+ SurfaceManager::singleton()->registerSurface(m_surface);
99101 }
100102
101103 Q_EMIT surfaceChanged(m_surface);
@@ -141,6 +143,7 @@ void Session::insertChildSession(uint index, Session* session)
141143
142144 session->setParentSession(this);
143145 m_children->insert(index, session);
146+ SessionManager::singleton()->registerSession(session);
144147}
145148
146149void Session::removeChildSession(Session* session)
@@ -150,6 +153,7 @@ void Session::removeChildSession(Session* session)
150153 if (m_children->contains(session)) {
151154 m_children->remove(session);
152155 session->setParentSession(nullptr);
156+ Q_EMIT session->deregister();
153157 }
154158}
155159