@@ -16,6 +16,7 @@
17#include "Session.h"
17#include "Session.h"
18#include "ApplicationInfo.h"
18#include "ApplicationInfo.h"
19+#include "SessionManager.h"
19#include "SurfaceManager.h"
20#include "SurfaceManager.h"
21#include <QPainter>
22#include <QPainter>
@@ -59,7 +60,6 @@ Session::~Session()
59void Session::release()
60void Session::release()
61 qDebug() << "Session::release " << name();
62 qDebug() << "Session::release " << name();
62− Q_EMIT aboutToBeDestroyed();
64 if (m_parentSession) {
64 if (m_parentSession) {
65 m_parentSession->removeChildSession(this);
65 m_parentSession->removeChildSession(this);
@@ -89,6 +89,7 @@ void Session::setSurface(MirSurfaceItem* surface)
89 if (m_surface) {
89 if (m_surface) {
90 m_surface->setSession(nullptr);
90 m_surface->setSession(nullptr);
91 m_surface->setParent(nullptr);
91 m_surface->setParent(nullptr);
92+ Q_EMIT m_surface->deregister();
94 m_surface = surface;
95 m_surface = surface;
@@ -96,6 +97,7 @@ void Session::setSurface(MirSurfaceItem* surface)
96 if (m_surface) {
97 if (m_surface) {
97 m_surface->setSession(this);
98 m_surface->setSession(this);
98 m_surface->setParent(this);
99 m_surface->setParent(this);
100+ SurfaceManager::singleton()->registerSurface(m_surface);
101 Q_EMIT surfaceChanged(m_surface);
103 Q_EMIT surfaceChanged(m_surface);
@@ -141,6 +143,7 @@ void Session::insertChildSession(uint index, Session* session)
142 session->setParentSession(this);
144 session->setParentSession(this);
143 m_children->insert(index, session);
145 m_children->insert(index, session);
146+ SessionManager::singleton()->registerSession(session);
146void Session::removeChildSession(Session* session)
149void Session::removeChildSession(Session* session)
@@ -150,6 +153,7 @@ void Session::removeChildSession(Session* session)
150 if (m_children->contains(session)) {
153 if (m_children->contains(session)) {
151 m_children->remove(session);
154 m_children->remove(session);
152 session->setParentSession(nullptr);
155 session->setParentSession(nullptr);
156+ Q_EMIT session->deregister();