on xenial help sign in
Added handling of active focus on consumesInput change
commitf909fbfecaf4ad9f58170c5a5ff2e2c04f470330 authorNick Dedekind <nick.dedekind@canonical.com> dateMon 9 May 2016, 09:54 (10 years ago) parentf0981df
2 files changed+9−6
tests/mocks/Unity/Application/MirSurfaceItem.cpp+8−5 tests/mocks/Unity/Application/MirSurfaceItem.h+1−1
tests/mocks/Unity/Application/MirSurfaceItem.cpp+8−5
@@ -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
tests/mocks/Unity/Application/MirSurfaceItem.h+1−1
@@ -98,12 +98,12 @@ protected:
9898 void mousePressEvent(QMouseEvent * event) override;
9999 void mouseMoveEvent(QMouseEvent * event) override;
100100 void mouseReleaseEvent(QMouseEvent * event) override;
101− void itemChange(ItemChange change, const ItemChangeData & value) override;
102101
103102private Q_SLOTS:
104103 void onComponentStatusChanged(QQmlComponent::Status status);
105104 void updateScreenshot(QUrl screenshot);
106105 void updateMirSurfaceVisibility();
106+ void updateMirSurfaceActiveFocus(bool focused);
107107
108108private:
109109 void createQmlContentItem();