!10 修改changelog

Merge pull request !10 from hanpinlong/openkylin/yangtze
This commit is contained in:
hanpinlong 2023-05-24 06:52:27 +00:00 committed by cckylin-cibot
parent 19c266ff5b
commit bf51caf8ab
3 changed files with 86 additions and 0 deletions

11
debian/changelog vendored
View File

@ -1,3 +1,14 @@
qtbase-opensource-src (5.15.8+dfsg-ok1.3) yangtze; urgency=medium
* BUG号
-I72L6W【X】【触摸】桌面触摸长按出现右键菜单之后桌面触摸失效任务栏触摸正常
-I62AWQ x11模式下触屏控制打开文件管理器空白处右键触发菜单后单击左侧选项无响应
* 需求号:无
* 其他更改: 合并触摸patch
-- hanpinlong <hanpinlong@kylinos.cn> Wed, 24 May 2023 13:43:15 +0800
qtbase-opensource-src (5.15.8+dfsg-ok1.2) yangtze; urgency=medium
* rebuild

74
debian/patches/0031-10-changelog.patch vendored Normal file
View File

@ -0,0 +1,74 @@
From: hanpinlong <hanpinlong@kylinos.cn>
Date: Wed, 24 May 2023 06:52:27 +0000
Subject: =?utf-8?q?!10_=E4=BF=AE=E6=94=B9changelog_Merge_pull_request_!10_f?=
=?utf-8?q?rom_hanpinlong/openkylin/yangtze?=
---
src/gui/kernel/qguiapplication.cpp | 1 +
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 25 +++++++++++++++++++++---
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 8282bd3..29e2e61 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -3058,6 +3058,7 @@ void QGuiApplicationPrivate::processTouchEvent(QWindowSystemInterfacePrivate::To
Qt::MouseButton button = Qt::NoButton;
Qt::MouseButtons buttons = Qt::LeftButton;
if (eventType == QEvent::TouchBegin && m_fakeMouseSourcePointId < 0)
+ || (touchPoints.count() == 1 && m_fakeMouseSourcePointId != touchPoints.first().id()))
m_fakeMouseSourcePointId = touchPoints.first().id();
for (const auto &touchPoint : touchPoints) {
if (touchPoint.id() == m_fakeMouseSourcePointId) {
diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
index 27a2526..fb2a335 100644
--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
@@ -286,9 +286,11 @@ void QXcbConnection::xi2SetupDevices()
m_tabletData.clear();
#endif
m_scrollingDevices.clear();
- m_touchDevices.clear();
m_xiMasterPointerIds.clear();
+ // FIXBUG: #123235 触摸过程中插拔usb键盘/鼠标导致触摸失效
+ QList<quint16> deviceIds;
+
auto reply = Q_XCB_REPLY(xcb_input_xi_query_device, xcb_connection(), XCB_INPUT_DEVICE_ALL);
if (!reply) {
qCDebug(lcQpaXInputDevices) << "failed to query devices";
@@ -303,8 +305,21 @@ void QXcbConnection::xi2SetupDevices()
continue;
}
// only slave pointer devices are relevant here
- if (deviceInfo->type == XCB_INPUT_DEVICE_TYPE_SLAVE_POINTER)
- xi2SetupDevice(deviceInfo, false);
+
+ // FIXBUG: #123235 触摸过程中插拔usb键盘/鼠标导致触摸失效
+ if (deviceInfo->type == XCB_INPUT_DEVICE_TYPE_SLAVE_POINTER) {
+ if (!m_touchDevices.contains(deviceInfo->deviceid)) {
+ xi2SetupDevice(deviceInfo, false);
+ }
+ deviceIds.append(deviceInfo->deviceid);
+ }
+ }
+
+ // FIXBUG: #123235 触摸过程中插拔usb键盘/鼠标导致触摸失效的问题
+ for (const auto &touchDeviceId : m_touchDevices.keys()) {
+ if (!deviceIds.contains(touchDeviceId)) {
+ m_touchDevices.remove(touchDeviceId);
+ }
}
if (m_xiMasterPointerIds.size() > 1)
@@ -593,6 +608,10 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event)
fixed1616ToReal(xiDeviceEvent->root_x), fixed1616ToReal(xiDeviceEvent->root_y),xiDeviceEvent->event);
if (QXcbWindow *platformWindow = platformWindowFromId(xiDeviceEvent->event))
xi2ProcessTouch(xiDeviceEvent, platformWindow);
+ else { // When the window cannot be matched, delete it from touchPoints
+ if (TouchDeviceData *dev = touchDeviceForId(xiDeviceEvent->sourceid))
+ dev->touchPoints.remove((xiDeviceEvent->detail % INT_MAX));
+ }
break;
}
} else if (xiEnterEvent && !xi2MouseEventsDisabled() && eventListener) {

View File

@ -28,3 +28,4 @@ cast_types_for_egl_x11_test.diff
revert_startBlocking_removal.diff
0029-3-try-rebuild.patch
0030-5-2.patch
0031-10-changelog.patch