From c0129e6ad3ce707c1f7e4bb6e610d7dcc54527d8 Mon Sep 17 00:00:00 2001 From: Mikolaj Boc Date: Thu, 21 Jul 2022 16:48:29 +0200 Subject: [PATCH] Modernize QWasmCompositor::windowAt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use a well-known idiom for finding a matching window in the window stack (std::find_if) Change-Id: I677ef6ad8ee88bbd9eee1405be592ec2527ca3b9 Reviewed-by: Lorn Potter (cherry picked from commit 0881b5d75c8ad01b295edb96ffd1392d4b804e61) Reviewed-by: Morten Johan Sørvig --- .../platforms/wasm/qwasmcompositor.cpp | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/plugins/platforms/wasm/qwasmcompositor.cpp b/src/plugins/platforms/wasm/qwasmcompositor.cpp index ef0d38801b7..8c29ba7751e 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