diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-10-02 01:26:11 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-10-02 01:26:11 +0100 |
commit | d39b2406e1496a2848b3f450a5737ae3dbd8c6f7 (patch) | |
tree | 2f21fa7a75d2873c67fb5d3faab2a0f60fb785ce /dev-qt/qtbase | |
parent | 95ce69d324747e9aa715e1761abab42204529b28 (diff) |
gentoo auto-resync : 02:10:2024 - 01:26:10
Diffstat (limited to 'dev-qt/qtbase')
-rw-r--r-- | dev-qt/qtbase/Manifest | 3 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch | 156 | ||||
-rw-r--r-- | dev-qt/qtbase/qtbase-6.7.3-r1.ebuild (renamed from dev-qt/qtbase/qtbase-6.7.3.ebuild) | 1 |
3 files changed, 159 insertions, 1 deletions
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest index 3f38160ac599..c82855a22069 100644 --- a/dev-qt/qtbase/Manifest +++ b/dev-qt/qtbase/Manifest @@ -8,12 +8,13 @@ AUX qtbase-6.7.2-gcc15-odr.patch 1162 BLAKE2B 640688d21fb70ce67378e0f8ac5ddac12b AUX qtbase-6.7.2-haswell-no-rdrnd.patch 4826 BLAKE2B 24071787ae48acec749e59cd7acc35c0137229dfb585bd05761e1b2fa2740f7df77161bf3a9fe2c8fb4430afdf1c610fdea42969691662c6d7c4e1e949865098 SHA512 a2c3fb782cc942db173135cffca3d24eb83dd2bc39e55f0cb2dae621297c22673ee6dfc5224c7237f8078faf036e692d41e119d78e5ccfd5d85ae8654d1009f8 AUX qtbase-6.7.2-qcontiguouscache.patch 310 BLAKE2B 736663ba1d07285fb5bb6b050b88cec9beaf20fdb7815fe1c2008872c6d076e04c76ae1b54c930c7096043ceba7285e4ac85c46c67720afb105a0647d0baa200 SHA512 81d7942275695fa82a2794792f5e4a5d6b7aa93515017146a55c52f0ba3edb9f2f4252f317978bfaf52856ef1c3295ad4fe5c21a55502c8c8b22f305a0753bb6 AUX qtbase-6.7.2-qwindowprivate-crash.patch 1337 BLAKE2B 1d8e354dc0db89744073bf555263129904592fb7c05b315713a21eae94b52a4b847dae906700cc5551fa21f828373ed044903dd10e8b86670b9296aa2009a3a3 SHA512 30e54110b9351aa2f7614a416b1fdf0d192a42386bdc5e75bd91fa2ecb98c48066b4e3858f97e00abbcbf2ddd5e90eab1594e285434d083215eaa34463dfa65b +AUX qtbase-6.7.3-erratic-mouse-input.patch 6210 BLAKE2B 7b7849ddc2e9918584e8c21fdf10775787ff97c6f4d254a44e679be6e9168dfb5cfd216d9f4a95e70c0e7c5a415e46813c59f6534ed2329dce982c2cdda4d5f5 SHA512 223ac3e472777e60cb161e41997230310ce3b1d67d6426f90882d9e158832ab426bec10419ba92aa5a6e8200e31617f88e9af5929b1cde1244d531c3e8ec0659 AUX qtbase-6.8.0-qcontiguouscache.patch 526 BLAKE2B b701f92d8365e8408a2ff79c812c397ac0042aa6b6316cf167a7877d48044ffaa0d2683fa27ffcbe80c8e74f8ff0c8af220b927889e83340c6b5325b1fbf16ab SHA512 19f33f2dd856c8328b9175458250929f3da34cde179d5f52ec1982e5e5f1772412f2541e146763a6258ce3377e0b624f07926fe4af56de7364c34835151b8995 DIST qtbase-everywhere-src-6.7.2.tar.xz 49364504 BLAKE2B b48b8a8decafe3262d459b9446c25561851fef88b3316107c2909f5964e8122a558b5501a3e59667bdf4776d36ea5ba0d9f227538c45c1f8e94fbc8fff4244a6 SHA512 eb4b2f1fb02ab0ed5508d32449e140778278ff1a619cfcae14920b276b5c46e01a566d73fb8f84cf2cfc81e19cb11e53ab500df6b27d12ab875aa8c07bd15d6b DIST qtbase-everywhere-src-6.7.3.tar.xz 49426156 BLAKE2B da7eacd64bd122bf2b320c0cec41ae7630e55e0d588912bc2cc6ef7ecc755af0f375ca84c6fe0bb8381e4008da2fd43fc491c5c88ecc7694223c62700761ed37 SHA512 99495c6ed942b3a7bd19f9471bac76502baaafc20ad7e139adf25726f699c1b4deffa1ab761fe9a49a3ffe6a36d830422a20f8a369aded67a083652bf4a19290 DIST qtbase-everywhere-src-6.8.0-rc.tar.xz 49816580 BLAKE2B 321aebf3404d080d09148ac68c173923e7d3d468beaccb4e036ba099786e4fb0e3e9b044a2317ad03f490fd1c72ad1ee2f0c926b96d0c312cad79109da362238 SHA512 04d003815d493bba1b0d609b61aa39343906886e15a00bae36e95011684dbece400c353b72c5167fac70dfcdc31ec53813afb0294564d996fe8bc4c24fe0e3c2 EBUILD qtbase-6.7.2-r5.ebuild 10317 BLAKE2B 92c1b6a9bea4277229f80a96c356de139d7809daa37cf7efaa7bb6e9ceba7ddb53dcc7dbe16919d800b379b9bf896c79de5b56378a593cce914c4ab74c433048 SHA512 19d1666bc8022a6c2aa8bf0f6692a9eadce471655876d7930f2043fc9b02d1fbb21ce81f9dd8553167f51eb2b62d36f9baec69753b73cd76e4de833faa7da14b -EBUILD qtbase-6.7.3.ebuild 10067 BLAKE2B d1bc17e3571ba6b411438064e5a8d830074a46dd66463ad0c41ea803b2f49ca2700b6b39f3ba63f740f3ef71a014a769ccb385ad17754d2890b09a11d29dc494 SHA512 946840d350a6d1dd853d28f5b719c8cecf09a792f3548d0d217adbffcfd0fea318d550547a15d71c65a0d21c8b73b52e63aa06196719ed0a7674038becae5ba1 +EBUILD qtbase-6.7.3-r1.ebuild 10120 BLAKE2B 4a265e8c4bf475ce67c81feac01a330e5f2b5ee01681a4571644772064a95b606cad7fa27b86ad9cbd9a86abf2c2720d6b45bc41f691baf7ad323fdf10409608 SHA512 c1990215ba99101588c5b64bb9a9ea2dd0dee4b00ca1fef9e4517924f7c6cd0b163a81993755b30b6f02e8d98e4656a58394c95b21cfb4f1a0112f6e3c3ec4fe EBUILD qtbase-6.7.9999.ebuild 10017 BLAKE2B 2d8d281b680059466fd16962380e338dcd115d2e3c77cfc88e0ceae1337f49ede09534bb8f923108bce66a3b993a753744ca99a3c2d9e27d080115a3e1ef6f23 SHA512 f6b94592da24dee07c3a488d45c2c18aa421c47c65180cd954f9252835bdc0109bc9de61b72be9842ceef7b93f30f5c1fc1a0f1006a3bb4e0cfd1246625efdea EBUILD qtbase-6.8.0_rc.ebuild 10554 BLAKE2B 64b0c95b5763f5e772e643cde8b11118034ddc303707e8c8b2cc7086f2b36f21ccff7b225d5a6aa818c65a63aa89d57127cbb985a486842f6746e0da2b85a0bb SHA512 bb42ddd44da538c8b229d150a02692524065afafe347268c0f2cf1e77cb8a8b310f9d8bac110dce3063d0203c7b74d4fa52b5a72b5eb8cc48e3b00d185d7df11 EBUILD qtbase-6.8.9999.ebuild 10554 BLAKE2B 64b0c95b5763f5e772e643cde8b11118034ddc303707e8c8b2cc7086f2b36f21ccff7b225d5a6aa818c65a63aa89d57127cbb985a486842f6746e0da2b85a0bb SHA512 bb42ddd44da538c8b229d150a02692524065afafe347268c0f2cf1e77cb8a8b310f9d8bac110dce3063d0203c7b74d4fa52b5a72b5eb8cc48e3b00d185d7df11 diff --git a/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch b/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch new file mode 100644 index 000000000000..14bdf1463949 --- /dev/null +++ b/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch @@ -0,0 +1,156 @@ +https://bugreports.qt.io/browse/QTBUG-129509 +https://bugreports.qt.io/browse/QTBUG-129514 +https://codereview.qt-project.org/c/qt/qtbase/+/594889 +From 42845904d51ad14b2ab41a165bd9b9b1a9459840 Mon Sep 17 00:00:00 2001 +From: Liang Qi <liang.qi@qt.io> +Date: Tue, 01 Oct 2024 12:46:30 +0200 +Subject: [PATCH] Revert "xcb: handle XI2 input button and motion events from slave devices" + +This reverts commit b71be292780b858f2c55ce92601452e2ea946de2, which causes a regression when using mouse wheel and moving cursor together +on scroll bar for some qt applications, like qutebrowser and +qbittorrent. + +Fixes: QTBUG-129509 +Fixes: QTBUG-129514 +Task-number: QTBUG-110841 +Pick-to: 6.8.0 6.8 6.7 6.5 6.2 5.15 +Change-Id: I703158874413a1306ea99217bced4ba38382f543 +--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp ++++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +@@ -683,94 +683,21 @@ + } + +-//implementation is ported from https://codereview.qt-project.org/c/qt/qtbase/+/231552/12/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp#558 +-namespace { +- +-/*! \internal +- +- Qt listens for XIAllDevices to avoid losing mouse events. This function +- ensures that we don't process the same event twice: from a slave device and +- then again from a master device. +- +- In a normal use case (e.g. mouse press and release inside a window), we will +- drop events from master devices as duplicates. Other advantage of processing +- events from slave devices is that they don't share button state. All buttons +- on a master device share the state. +- +- Examples of special cases: +- +-\list +- +-\li During system move/resize, window manager (_NET_WM_MOVERESIZE) grabs the +- master pointer, in this case we process the matching release from the slave +- device. A master device event is not sent by the server, hence no duplicate +- event to drop. If we listened for XIAllMasterDevices instead, we would never +- see a release event in this case. +- +-\li If we dismiss a context menu by clicking somewhere outside a Qt application, +- we will process the mouse press from the master pointer as that is the +- device we are grabbing. We are not grabbing slave devices (grabbing on the +- slave device is buggy according to 19d289ab1b5bde3e136765e5432b5c7d004df3a4). +- And since the event occurs outside our window, the slave device event is +- not sent to us by the server, hence no duplicate event to drop. +- +-\endlist +-*/ +-bool isDuplicateEvent(xcb_ge_event_t *event) +-{ +- Q_ASSERT(event); +- +- struct qXIEvent { +- bool isValid = false; +- uint16_t sourceid; +- uint8_t evtype; +- uint32_t detail; +- int32_t root_x; +- int32_t root_y; +- }; +- static qXIEvent lastSeenEvent; +- +- bool isDuplicate = false; +- auto *xiDeviceEvent = reinterpret_cast<qt_xcb_input_device_event_t *>(event); +- if (lastSeenEvent.isValid) { +- isDuplicate = lastSeenEvent.sourceid == xiDeviceEvent->sourceid && +- lastSeenEvent.evtype == xiDeviceEvent->event_type && +- lastSeenEvent.detail == xiDeviceEvent->detail && +- lastSeenEvent.root_x == xiDeviceEvent->root_x && +- lastSeenEvent.root_y == xiDeviceEvent->root_y; +- } else { +- lastSeenEvent.isValid = true; +- } +- lastSeenEvent.sourceid = xiDeviceEvent->sourceid; +- lastSeenEvent.evtype = xiDeviceEvent->event_type; +- lastSeenEvent.detail = xiDeviceEvent->detail; +- lastSeenEvent.root_x = xiDeviceEvent->root_x; +- lastSeenEvent.root_y = xiDeviceEvent->root_y; +- +- if (isDuplicate) { +- qCDebug(lcQpaXInputEvents, "Duplicate XI2 event %d", event->event_type); +- // This sanity check ensures that special cases like QTBUG-59277 keep working. +- lastSeenEvent.isValid = false; // An event can be a duplicate only once. +- } +- +- return isDuplicate; +-} +- +-} // namespace +- + void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event) + { + auto *xiEvent = reinterpret_cast<qt_xcb_input_device_event_t *>(event); +- if (m_xiSlavePointerIds.contains(xiEvent->deviceid)) { +- if (!(xiEvent->event_type == XCB_INPUT_BUTTON_PRESS +- || xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE +- || xiEvent->event_type == XCB_INPUT_MOTION)) { +- if (!m_duringSystemMoveResize) +- return; +- if (xiEvent->event == XCB_NONE) +- return; +- +- if (xiEvent->event_type == XCB_INPUT_TOUCH_END) +- abortSystemMoveResize(xiEvent->event); ++ setTime(xiEvent->time); ++ if (m_xiSlavePointerIds.contains(xiEvent->deviceid) && xiEvent->event_type != XCB_INPUT_PROPERTY) { ++ if (!m_duringSystemMoveResize) ++ return; ++ if (xiEvent->event == XCB_NONE) ++ return; + ++ if (xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE ++ && xiEvent->detail == XCB_BUTTON_INDEX_1 ) { ++ abortSystemMoveResize(xiEvent->event); ++ } else if (xiEvent->event_type == XCB_INPUT_TOUCH_END) { ++ abortSystemMoveResize(xiEvent->event); ++ return; ++ } else { + return; + } +@@ -784,25 +711,9 @@ + case XCB_INPUT_BUTTON_PRESS: + case XCB_INPUT_BUTTON_RELEASE: +- case XCB_INPUT_MOTION: { +- if (isDuplicateEvent(event)) +- return; +- if (m_xiSlavePointerIds.contains(xiEvent->deviceid)) { +- if (m_duringSystemMoveResize) { +- if (xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE +- && xiEvent->detail == XCB_BUTTON_INDEX_1 ) { +- abortSystemMoveResize(xiEvent->event); +- } else { +- return; +- } +- } +- } +- xiDeviceEvent = xiEvent; +- eventListener = windowEventListenerFromId(xiDeviceEvent->event); +- sourceDeviceId = xiDeviceEvent->sourceid; // use the actual device id instead of the master +- break; +- } ++ case XCB_INPUT_MOTION: + case XCB_INPUT_TOUCH_BEGIN: + case XCB_INPUT_TOUCH_UPDATE: +- case XCB_INPUT_TOUCH_END: { ++ case XCB_INPUT_TOUCH_END: ++ { + xiDeviceEvent = xiEvent; + eventListener = windowEventListenerFromId(xiDeviceEvent->event); diff --git a/dev-qt/qtbase/qtbase-6.7.3.ebuild b/dev-qt/qtbase/qtbase-6.7.3-r1.ebuild index 83f66ef4cd47..07859a84c2e5 100644 --- a/dev-qt/qtbase/qtbase-6.7.3.ebuild +++ b/dev-qt/qtbase/qtbase-6.7.3-r1.ebuild @@ -147,6 +147,7 @@ PATCHES=( "${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch "${FILESDIR}"/${PN}-6.7.2-qcontiguouscache.patch "${FILESDIR}"/${PN}-6.7.2-haswell-no-rdrnd.patch + "${FILESDIR}"/${PN}-6.7.3-erratic-mouse-input.patch ) src_prepare() { |