@@ -56,7 +56,11 @@ MirSurfaceItem::MirSurfaceItem(QQuickItem *parent)
5656 Qt::ExtraButton9 | Qt::ExtraButton10 | Qt::ExtraButton11 |
5757 Qt::ExtraButton12 | Qt::ExtraButton13);
5858
59+ connect(this, &QQuickItem::activeFocusChanged, this, &MirSurfaceItem::updateMirSurfaceActiveFocus);
5960 connect(this, &QQuickItem::visibleChanged, this, &MirSurfaceItem::updateMirSurfaceVisibility);
61+ connect(this, &MirSurfaceItem::consumesInputChanged, this, [this]() {
62+ updateMirSurfaceActiveFocus(hasActiveFocus());
63+ });
6064}
6165
6266MirSurfaceItem::~MirSurfaceItem()
@@ -288,12 +292,11 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
288292 Q_EMIT surfaceChanged(m_qmlSurface);
289293}
290294
291−void MirSurfaceItem::itemChange(ItemChange change, const ItemChangeData & value)
295+
296+void MirSurfaceItem::updateMirSurfaceActiveFocus(bool focused)
292297{
293− if (change == QQuickItem::ItemActiveFocusHasChanged) {
294− if (m_qmlSurface && m_consumesInput && m_qmlSurface->live()) {
295− m_qmlSurface->setActiveFocus(value.boolValue);
296− }
298+ if (m_qmlSurface && m_consumesInput && m_qmlSurface->live()) {
299+ m_qmlSurface->setActiveFocus(focused);
297300 }
298301}
299302