diff options
| author | Mikolaj Boc <mikolaj.boc@qt.io> | 2022-07-21 16:48:29 +0200 |
|---|---|---|
| committer | Mikolaj Boc <mikolaj.boc@qt.io> | 2022-07-28 15:45:07 +0200 |
| commit | 0881b5d75c8ad01b295edb96ffd1392d4b804e61 (patch) | |
| tree | f9033051ce0848ef069f432d6c7aa9214fb1d2c1 /src/plugins/platforms/wasm/qwasmcompositor.cpp | |
| parent | ea668ff16366a860cbbae759471a4050217ae98b (diff) | |
Modernize QWasmCompositor::windowAt
Use a well-known idiom for finding a matching window in the window stack
(std::find_if)
Change-Id: I677ef6ad8ee88bbd9eee1405be592ec2527ca3b9
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmcompositor.cpp')
| -rw-r--r-- | src/plugins/platforms/wasm/qwasmcompositor.cpp | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/src/plugins/platforms/wasm/qwasmcompositor.cpp b/src/plugins/platforms/wasm/qwasmcompositor.cpp index b4a690f1050..f7545b855c6 100644 --- a/src/plugins/platforms/wasm/qwasmcompositor.cpp +++ b/src/plugins/platforms/wasm/qwasmcompositor.cpp @@ -233,22 +233,14 @@ int QWasmCompositor::windowCount() const QWindow *QWasmCompositor::windowAt(QPoint targetPointInScreenCoords, int padding) const { - int index = m_windowStack.count() - 1; - // qDebug() << "window at" << "point" << p << "window count" << index; + const auto found = std::find_if(m_windowStack.rbegin(), m_windowStack.rend(), + [this, padding, &targetPointInScreenCoords](const QWasmWindow* window) { + const QRect geometry = window->windowFrameGeometry() + .adjusted(-padding, -padding, padding, padding); - while (index >= 0) { - const QWasmWindow *window = m_windowStack.at(index); - //qDebug() << "windwAt testing" << compositedWindow.window << - - QRect geometry = window->windowFrameGeometry() - .adjusted(-padding, -padding, padding, padding); - - if (m_windowVisibility[window] && geometry.contains(targetPointInScreenCoords)) - return m_windowStack.at(index)->window(); - --index; - } - - return 0; + return m_windowVisibility[window] && geometry.contains(targetPointInScreenCoords); + }); + return found != m_windowStack.rend() ? (*found)->window() : nullptr; } QWindow *QWasmCompositor::keyWindow() const |
