@@ -234,6 +234,10 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
234234 delete m_qmlContentComponent;
235235 m_qmlContentComponent = nullptr;
236236
237+ if (hasActiveFocus() && m_consumesInput && m_qmlSurface->live()) {
238+ m_qmlSurface->setActiveFocus(false);
239+ }
240+
237241 disconnect(m_qmlSurface, nullptr, this, nullptr);
238242 m_qmlSurface->unregisterView((qintptr)this);
239243 }
@@ -243,8 +247,6 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
243247 if (m_qmlSurface) {
244248 m_qmlSurface->registerView((qintptr)this);
245249
246− m_qmlSurface->setActiveFocus(hasActiveFocus());
247−
248250 updateSurfaceSize();
249251 updateMirSurfaceVisibility();
250252
@@ -277,6 +279,10 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
277279 default:
278280 qFatal("MirSurfaceItem: Unhandled component status");
279281 }
282+
283+ if (m_consumesInput) {
284+ m_qmlSurface->setActiveFocus(hasActiveFocus());
285+ }
280286 }
281287
282288 Q_EMIT surfaceChanged(m_qmlSurface);
@@ -285,7 +291,7 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
285291void MirSurfaceItem::itemChange(ItemChange change, const ItemChangeData & value)
286292{
287293 if (change == QQuickItem::ItemActiveFocusHasChanged) {
288− if (m_qmlSurface) {
294+ if (m_qmlSurface && m_consumesInput && m_qmlSurface->live()) {
289295 m_qmlSurface->setActiveFocus(value.boolValue);
290296 }
291297 }