diff -cr Src.Orig/qtbase/src/plugins/platforms/android/androidjniinput.cpp Src/qtbase/src/plugins/platforms/android/androidjniinput.cpp *** Src.Orig/qtbase/src/plugins/platforms/android/androidjniinput.cpp Tue Oct 27 08:02:11 2020 --- Src/qtbase/src/plugins/platforms/android/androidjniinput.cpp Mon Dec 5 08:57:10 2022 *************** *** 44,49 **** --- 44,50 ---- #include "androidjnimain.h" #include "qandroidplatformintegration.h" + #include #include #include #include *************** *** 139,145 **** QPoint globalPos(x,y); QWindow *tlw = topLevelWindowAt(globalPos); m_mouseGrabber = tlw; ! QPoint localPos = tlw ? (globalPos - tlw->position()) : globalPos; QWindowSystemInterface::handleMouseEvent(tlw, localPos, globalPos, Qt::MouseButtons(Qt::LeftButton), Qt::LeftButton, QEvent::MouseButtonPress); --- 140,146 ---- QPoint globalPos(x,y); QWindow *tlw = topLevelWindowAt(globalPos); m_mouseGrabber = tlw; ! QPoint localPos = tlw ? (globalPos - QHighDpi::toNativeLocalPosition(tlw->position(), tlw)) : globalPos; QWindowSystemInterface::handleMouseEvent(tlw, localPos, globalPos, Qt::MouseButtons(Qt::LeftButton), Qt::LeftButton, QEvent::MouseButtonPress); *************** *** 151,157 **** QWindow *tlw = m_mouseGrabber.data(); if (!tlw) tlw = topLevelWindowAt(globalPos); ! QPoint localPos = tlw ? (globalPos -tlw->position()) : globalPos; QWindowSystemInterface::handleMouseEvent(tlw, localPos, globalPos, Qt::MouseButtons(Qt::NoButton), Qt::LeftButton, QEvent::MouseButtonRelease); --- 152,158 ---- QWindow *tlw = m_mouseGrabber.data(); if (!tlw) tlw = topLevelWindowAt(globalPos); ! QPoint localPos = tlw ? (globalPos - QHighDpi::toNativeLocalPosition(tlw->position(), tlw)) : globalPos; QWindowSystemInterface::handleMouseEvent(tlw, localPos, globalPos, Qt::MouseButtons(Qt::NoButton), Qt::LeftButton, QEvent::MouseButtonRelease); *************** *** 169,175 **** QWindow *tlw = m_mouseGrabber.data(); if (!tlw) tlw = topLevelWindowAt(globalPos); ! QPoint localPos = tlw ? (globalPos-tlw->position()) : globalPos; QWindowSystemInterface::handleMouseEvent(tlw, localPos, globalPos, Qt::MouseButtons(m_mouseGrabber ? Qt::LeftButton : Qt::NoButton), Qt::NoButton, QEvent::MouseMove); --- 170,176 ---- QWindow *tlw = m_mouseGrabber.data(); if (!tlw) tlw = topLevelWindowAt(globalPos); ! QPoint localPos = tlw ? (globalPos - QHighDpi::toNativeLocalPosition(tlw->position(), tlw)) : globalPos; QWindowSystemInterface::handleMouseEvent(tlw, localPos, globalPos, Qt::MouseButtons(m_mouseGrabber ? Qt::LeftButton : Qt::NoButton), Qt::NoButton, QEvent::MouseMove); *************** *** 184,190 **** QWindow *tlw = m_mouseGrabber.data(); if (!tlw) tlw = topLevelWindowAt(globalPos); ! QPoint localPos = tlw ? (globalPos-tlw->position()) : globalPos; QPoint angleDelta(hdelta * 120, vdelta * 120); QWindowSystemInterface::handleWheelEvent(tlw, --- 185,191 ---- QWindow *tlw = m_mouseGrabber.data(); if (!tlw) tlw = topLevelWindowAt(globalPos); ! QPoint localPos = tlw ? (globalPos - QHighDpi::toNativeLocalPosition(tlw->position(), tlw)) : globalPos; QPoint angleDelta(hdelta * 120, vdelta * 120); QWindowSystemInterface::handleWheelEvent(tlw, *************** *** 207,213 **** m_ignoreMouseEvents = true; QPoint globalPos(x,y); QWindow *tlw = topLevelWindowAt(globalPos); ! QPoint localPos = tlw ? (globalPos-tlw->position()) : globalPos; // Click right button if no other button is already pressed. if (!m_mouseGrabber) { --- 208,214 ---- m_ignoreMouseEvents = true; QPoint globalPos(x,y); QWindow *tlw = topLevelWindowAt(globalPos); ! QPoint localPos = tlw ? (globalPos - QHighDpi::toNativeLocalPosition(tlw->position(), tlw)) : globalPos; // Click right button if no other button is already pressed. if (!m_mouseGrabber) { *************** *** 307,313 **** QPointF globalPosF(x, y); QPoint globalPos((int)x, (int)y); QWindow *tlw = topLevelWindowAt(globalPos); ! QPointF localPos = tlw ? (globalPosF - tlw->position()) : globalPosF; // Galaxy Note with plain Android: // 0 1 0 stylus press --- 308,314 ---- QPointF globalPosF(x, y); QPoint globalPos((int)x, (int)y); QWindow *tlw = topLevelWindowAt(globalPos); ! QPointF localPos = tlw ? (globalPosF - QHighDpi::toNativeLocalPosition(tlw->position(), tlw)) : globalPosF; // Galaxy Note with plain Android: // 0 1 0 stylus press