@@ -34,6 +34,12 @@ SurfaceManager::SurfaceManager(QObject *parent) :
3434 QObject(parent)
3535 , m_virtualKeyboard(nullptr)
3636{
37+ m_virtualKeyboard = new VirtualKeyboard;
38+ connect(m_virtualKeyboard, &QObject::destroyed, this, [this](QObject *obj) {
39+ MirSurface* surface = qobject_cast<MirSurface*>(obj);
40+ Q_EMIT inputMethodSurfaceChanged();
41+ Q_EMIT surfaceDestroyed(surface);
42+ });
3743}
3844
3945MirSurface *SurfaceManager::createSurface(const QString& name,
@@ -50,15 +56,7 @@ MirSurface *SurfaceManager::createSurface(const QString& name,
5056 return surface;
5157}
5258
53−MirSurface *SurfaceManager::inputMethodSurface()
59+MirSurface *SurfaceManager::inputMethodSurface() const
5460{
55− if (!m_virtualKeyboard) {
56− m_virtualKeyboard = new VirtualKeyboard;
57− connect(m_virtualKeyboard, &QObject::destroyed, this, [this](QObject *obj) {
58− MirSurface* surface = qobject_cast<MirSurface*>(obj);
59− Q_EMIT surfaceDestroyed(surface);
60− });
61− Q_EMIT surfaceCreated(m_virtualKeyboard);
62− }
6361 return m_virtualKeyboard;
6462}