diff options
author | Liang Qi <liang.qi@qt.io> | 2016-11-03 12:10:54 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-11-03 12:11:41 +0100 |
commit | 0e5b26942c9ff8b85322a63f577bd7a91ff0851a (patch) | |
tree | 01cbc798c813546af32e6d6de2cae923b23ba2d5 /tests | |
parent | d62667f43dcd535d9315394c4ffb2faec44684fe (diff) | |
parent | e05f6c01d2ac4b807c07a682927f75d70292595b (diff) |
Merge remote-tracking branch 'origin/5.8' into dev
Change-Id: Ic2135c6ff27ca3fdef6a76dbdc72f73f5ca4d7fb
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/client/client/mockcompositor.cpp | 6 | ||||
-rw-r--r-- | tests/auto/client/client/mockinput.cpp | 16 | ||||
-rw-r--r-- | tests/auto/client/client/mockinput.h | 2 |
3 files changed, 20 insertions, 4 deletions
diff --git a/tests/auto/client/client/mockcompositor.cpp b/tests/auto/client/client/mockcompositor.cpp index 45a35ea7d..2c5f2541f 100644 --- a/tests/auto/client/client/mockcompositor.cpp +++ b/tests/auto/client/client/mockcompositor.cpp @@ -362,10 +362,8 @@ void Compositor::addSurface(Surface *surface) void Compositor::removeSurface(Surface *surface) { m_surfaces.removeOne(surface); - if (m_keyboard->focus() == surface) - m_keyboard->setFocus(0); - if (m_pointer->focus() == surface) - m_pointer->setFocus(0, QPoint()); + m_keyboard->handleSurfaceDestroyed(surface); + m_pointer->handleSurfaceDestroyed(surface); } } diff --git a/tests/auto/client/client/mockinput.cpp b/tests/auto/client/client/mockinput.cpp index fe06bf79b..99acdd43a 100644 --- a/tests/auto/client/client/mockinput.cpp +++ b/tests/auto/client/client/mockinput.cpp @@ -267,6 +267,14 @@ void Keyboard::setFocus(Surface *surface) m_focus = surface; } +void Keyboard::handleSurfaceDestroyed(Surface *surface) +{ + if (surface == m_focus) { + m_focusResource = nullptr; + m_focus = nullptr; + } +} + void Keyboard::sendKey(uint32_t key, uint32_t state) { if (m_focusResource) { @@ -314,6 +322,14 @@ void Pointer::setFocus(Surface *surface, const QPoint &pos) m_focus = surface; } +void Pointer::handleSurfaceDestroyed(Surface *surface) +{ + if (m_focus == surface) { + m_focus = nullptr; + m_focusResource = nullptr; + } +} + void Pointer::sendMotion(const QPoint &pos) { if (m_focusResource) diff --git a/tests/auto/client/client/mockinput.h b/tests/auto/client/client/mockinput.h index 031be2a4a..7e88ffb0f 100644 --- a/tests/auto/client/client/mockinput.h +++ b/tests/auto/client/client/mockinput.h @@ -75,6 +75,7 @@ public: Surface *focus() const { return m_focus; } void setFocus(Surface *surface); + void handleSurfaceDestroyed(Surface *surface); void sendKey(uint32_t key, uint32_t state); @@ -97,6 +98,7 @@ public: Surface *focus() const { return m_focus; } void setFocus(Surface *surface, const QPoint &pos); + void handleSurfaceDestroyed(Surface *surface); void sendMotion(const QPoint &pos); void sendButton(uint32_t button, uint32_t state); |