diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-08-27 11:57:34 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-09-01 13:08:41 +0200 |
commit | 78ee7597482a2efa06305d659a88122a95a062de (patch) | |
tree | d7901f513eade8be16bb6ce3c6b2cca52356b143 /src/plugins/platforms/windows/qwindowsscreen.cpp | |
parent | 367680679ae13faaf71aa481265cb93629a36427 (diff) |
Windows QPA plugin: Streamline code to find window at a position.
Task-number: QTBUG-40815
Change-Id: I0efcc2cfcafdee04bda20afa88a7f6aaabd57210
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsscreen.cpp')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsscreen.cpp | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/plugins/platforms/windows/qwindowsscreen.cpp b/src/plugins/platforms/windows/qwindowsscreen.cpp index a5a291a8d8..796975122e 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.cpp +++ b/src/plugins/platforms/windows/qwindowsscreen.cpp @@ -287,13 +287,12 @@ QPixmap QWindowsScreen::grabWindow(WId window, int qX, int qY, int qWidth, int q \brief Find a top level window taking the flags of ChildWindowFromPointEx. */ -QWindow *QWindowsScreen::findTopLevelAt(const QPoint &point, unsigned flags) +QWindow *QWindowsScreen::topLevelAt(const QPoint &point) const { - QWindow* result = 0; - if (QPlatformWindow *bw = QWindowsContext::instance()-> - findPlatformWindowAt(GetDesktopWindow(), point, flags)) - result = QWindowsWindow::topLevelOf(bw->window()); - qCDebug(lcQpaWindows) <<__FUNCTION__ << point << flags << result; + QWindow *result = 0; + if (QWindow *child = QWindowsScreen::windowAt(point * QWindowsScaling::factor(), CWP_SKIPINVISIBLE)) + result = QWindowsWindow::topLevelOf(child); + qCDebug(lcQpaWindows) <<__FUNCTION__ << point << result; return result; } @@ -307,15 +306,6 @@ QWindow *QWindowsScreen::windowAt(const QPoint &screenPoint, unsigned flags) return result; } -QWindow *QWindowsScreen::windowUnderMouse(unsigned flags) -{ -#ifndef QT_NO_CURSOR - return QWindowsScreen::windowAt(QWindowsCursor::mousePosition(), flags); -#else - return 0; -#endif -} - QWindowsScreen *QWindowsScreen::screenOf(const QWindow *w) { if (w) |