@@ -56,7 +56,11 @@ MirSurfaceItem::MirSurfaceItem(QQuickItem *parent)
56 Qt::ExtraButton9 | Qt::ExtraButton10 | Qt::ExtraButton11 |
56 Qt::ExtraButton9 | Qt::ExtraButton10 | Qt::ExtraButton11 |
57 Qt::ExtraButton12 | Qt::ExtraButton13);
57 Qt::ExtraButton12 | Qt::ExtraButton13);
59+ connect(this, &QQuickItem::activeFocusChanged, this, &MirSurfaceItem::updateMirSurfaceActiveFocus);
59 connect(this, &QQuickItem::visibleChanged, this, &MirSurfaceItem::updateMirSurfaceVisibility);
60 connect(this, &QQuickItem::visibleChanged, this, &MirSurfaceItem::updateMirSurfaceVisibility);
61+ connect(this, &MirSurfaceItem::consumesInputChanged, this, [this]() {
62+ updateMirSurfaceActiveFocus(hasActiveFocus());
62MirSurfaceItem::~MirSurfaceItem()
66MirSurfaceItem::~MirSurfaceItem()
@@ -288,12 +292,11 @@ void MirSurfaceItem::setSurface(MirSurfaceInterface* surface)
288 Q_EMIT surfaceChanged(m_qmlSurface);
292 Q_EMIT surfaceChanged(m_qmlSurface);
291−void MirSurfaceItem::itemChange(ItemChange change, const ItemChangeData & value)
295+
296+void MirSurfaceItem::updateMirSurfaceActiveFocus(bool focused)
293− if (change == QQuickItem::ItemActiveFocusHasChanged) {
294− if (m_qmlSurface && m_consumesInput && m_qmlSurface->live()) {
298+ if (m_qmlSurface && m_consumesInput && m_qmlSurface->live()) {
295− m_qmlSurface->setActiveFocus(value.boolValue);
299+ m_qmlSurface->setActiveFocus(focused);