Windows QPA: Fix local position reported for enter events
Use QPlatformWindow::mapFromGlobal() instead of QWindow:::mapFromGlobal() as QPA operates in device pixels. Task-number: QTBUG-62028 Change-Id: I64ec4f4c9a536e122676d738db58805b98a45c82 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
This commit is contained in:
parent
e7471da4d6
commit
13bceecc6b
@ -387,12 +387,13 @@ bool QWindowsMouseHandler::translateMouseEvent(QWindow *window, HWND hwnd,
|
|||||||
&& (!hasCapture || currentWindowUnderMouse == window))
|
&& (!hasCapture || currentWindowUnderMouse == window))
|
||||||
|| (m_previousCaptureWindow && window != m_previousCaptureWindow && currentWindowUnderMouse
|
|| (m_previousCaptureWindow && window != m_previousCaptureWindow && currentWindowUnderMouse
|
||||||
&& currentWindowUnderMouse != m_previousCaptureWindow)) {
|
&& currentWindowUnderMouse != m_previousCaptureWindow)) {
|
||||||
|
QPoint localPosition;
|
||||||
qCDebug(lcQpaEvents) << "Entering " << currentWindowUnderMouse;
|
qCDebug(lcQpaEvents) << "Entering " << currentWindowUnderMouse;
|
||||||
if (QWindowsWindow *wumPlatformWindow = QWindowsWindow::windowsWindowOf(currentWindowUnderMouse))
|
if (QWindowsWindow *wumPlatformWindow = QWindowsWindow::windowsWindowOf(currentWindowUnderMouse)) {
|
||||||
|
localPosition = wumPlatformWindow->mapFromGlobal(globalPosition);
|
||||||
wumPlatformWindow->applyCursor();
|
wumPlatformWindow->applyCursor();
|
||||||
QWindowSystemInterface::handleEnterEvent(currentWindowUnderMouse,
|
}
|
||||||
currentWindowUnderMouse->mapFromGlobal(globalPosition),
|
QWindowSystemInterface::handleEnterEvent(currentWindowUnderMouse, localPosition, globalPosition);
|
||||||
globalPosition);
|
|
||||||
}
|
}
|
||||||
// We need to track m_windowUnderMouse separately from m_trackedWindow, as
|
// We need to track m_windowUnderMouse separately from m_trackedWindow, as
|
||||||
// Windows mouse tracking will not trigger WM_MOUSELEAVE for leaving window when
|
// Windows mouse tracking will not trigger WM_MOUSELEAVE for leaving window when
|
||||||
|
Loading…
Reference in New Issue
Block a user