diff --git a/debian/changelog b/debian/changelog index ec62cfd7..8b3e6eb6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +qtbase-opensource-src (5.15.8+dfsg-ok1.6) yangtze; urgency=medium + + * BUG号: + #I72DC0:【X】【触摸】【次要】文件管理器界面触控笔偏移 + #I72CCL:【X】【触摸】触摸屏pc模式下触控笔单击功能失效 + #I729NF:【X】【触摸】触控笔点击按钮时画面按钮动画卡顿不生效 + * 需求号:无 + * 其他更改: 修复 xcb 上高 dpi 时触控笔坐标异常 + + -- hanpinlong Thu, 25 May 2023 11:15:52 +0800 + qtbase-opensource-src (5.15.8+dfsg-ok1.5build1) yangtze; urgency=medium * BUG号: diff --git a/debian/patches/0033-update-debian-changelog.patch b/debian/patches/0033-update-debian-changelog.patch new file mode 100644 index 00000000..9aaeb2c7 --- /dev/null +++ b/debian/patches/0033-update-debian-changelog.patch @@ -0,0 +1,66 @@ +From: hanpinlong +Date: Thu, 25 May 2023 03:18:13 +0000 +Subject: update debian/changelog. + +Signed-off-by: hanpinlong +--- + src/gui/kernel/qplatformwindow.cpp | 7 +++++++ + src/gui/kernel/qplatformwindow.h | 1 + + src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 8 ++++---- + 3 files changed, 12 insertions(+), 4 deletions(-) + +diff --git a/src/gui/kernel/qplatformwindow.cpp b/src/gui/kernel/qplatformwindow.cpp +index 7207ff4..dfbd7d5 100644 +--- a/src/gui/kernel/qplatformwindow.cpp ++++ b/src/gui/kernel/qplatformwindow.cpp +@@ -266,6 +266,13 @@ QPoint QPlatformWindow::mapToGlobal(const QPoint &pos) const + return result; + } + ++QPointF QPlatformWindow::mapFromGlobalF(const QPointF &pos) const ++{ ++ const QPoint posPt = pos.toPoint(); ++ const QPointF delta = pos - posPt; ++ return mapFromGlobal(posPt) + delta; ++} ++ + /*! + Translates the global screen coordinate \a pos to window + coordinates using native methods. This is required for embedded windows, +diff --git a/src/gui/kernel/qplatformwindow.h b/src/gui/kernel/qplatformwindow.h +index 7b85090..a92de4e 100644 +--- a/src/gui/kernel/qplatformwindow.h ++++ b/src/gui/kernel/qplatformwindow.h +@@ -114,6 +114,7 @@ public: + virtual bool isForeignWindow() const { return false; }; + virtual QPoint mapToGlobal(const QPoint &pos) const; + virtual QPoint mapFromGlobal(const QPoint &pos) const; ++ QPointF mapFromGlobalF(const QPointF &pos) const; + + virtual void propagateSizeHints(); + +diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +index fb2a335..cfff36d 100644 +--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp ++++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +@@ -1270,16 +1270,16 @@ void QXcbConnection::xi2ReportTabletEvent(const void *event, TabletData *tabletD + if (Q_LIKELY(useValuators)) { + const qreal value = scaleOneValuator(normalizedValue, physicalScreenArea.x(), physicalScreenArea.width()); + global.setX(value); +- // mapFromGlobal is ok for nested/embedded windows, but works only with whole-number QPoint; +- // so map it first, then add back the sub-pixel position +- local.setX(window->mapFromGlobal(QPoint(int(value), 0)).x() + (value - int(value))); ++ //! \note Fix QTBUG-77826 ++ local.setX(xcbWindow->mapFromGlobalF(global).x()); + } + break; + case QXcbAtom::AbsY: + if (Q_LIKELY(useValuators)) { + qreal value = scaleOneValuator(normalizedValue, physicalScreenArea.y(), physicalScreenArea.height()); + global.setY(value); +- local.setY(window->mapFromGlobal(QPoint(0, int(value))).y() + (value - int(value))); ++ //! \note Fix QTBUG-77826 ++ local.setY(xcbWindow->mapFromGlobalF(global).y()); + } + break; + case QXcbAtom::AbsPressure: diff --git a/debian/patches/series b/debian/patches/series index 92641e4d..6e55d730 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -30,3 +30,4 @@ revert_startBlocking_removal.diff 0030-5-2.patch 0031-10-changelog.patch 0032-13-rebuild.patch +0033-update-debian-changelog.patch