summaryrefslogtreecommitdiff
path: root/dev-qt/qtbase
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-10-02 01:26:11 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-10-02 01:26:11 +0100
commitd39b2406e1496a2848b3f450a5737ae3dbd8c6f7 (patch)
tree2f21fa7a75d2873c67fb5d3faab2a0f60fb785ce /dev-qt/qtbase
parent95ce69d324747e9aa715e1761abab42204529b28 (diff)
gentoo auto-resync : 02:10:2024 - 01:26:10
Diffstat (limited to 'dev-qt/qtbase')
-rw-r--r--dev-qt/qtbase/Manifest3
-rw-r--r--dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch156
-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() {