forked from pool/libqt5-qtbase
Accepting request 1077015 from home:Vogtinator:qt5.15
- Add patch to fix XInput2 events in big-endian X11 clients (bsc#1204883, QTBUG-105157): * big-endian-scroll.patch OBS-URL: https://build.opensuse.org/request/show/1077015 OBS-URL: https://build.opensuse.org/package/show/KDE:Qt:5.15/libqt5-qtbase?expand=0&rev=48
This commit is contained in:
parent
1e1e1a120b
commit
eb12c6ac3d
80
big-endian-scroll.patch
Normal file
80
big-endian-scroll.patch
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
From c0677d7b69ad304727df96351c557d82e43bd69c Mon Sep 17 00:00:00 2001
|
||||||
|
From: q66 <daniel@octaforge.org>
|
||||||
|
Date: Mon, 3 Apr 2023 14:36:51 +0200
|
||||||
|
Subject: [PATCH] Fix scrolling on big endian platforms
|
||||||
|
|
||||||
|
The mask is defined as an array of 4*CARD8, but libxcb and Qt treat
|
||||||
|
it as array of CARD32, but that only works on little endian platforms.
|
||||||
|
|
||||||
|
Qt 6 switched to the array of 4*CARD8 representation, but that change is rather
|
||||||
|
complex for a backport but fortunately also not needed because 5.x only uses
|
||||||
|
32 bits. Use a little-endian CARD32 to have the same effect as 4*CARD8.
|
||||||
|
|
||||||
|
The diff is from https://github.com/void-linux/void-packages/pull/13901,
|
||||||
|
which is assumed to be the original source. Patch header and description
|
||||||
|
are from Fabian Vogt <fvogt@suse.de>.
|
||||||
|
|
||||||
|
Fixes: https://bugreports.qt.io/browse/QTBUG-105157
|
||||||
|
---
|
||||||
|
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 10 ++++++----
|
||||||
|
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
|
||||||
|
index 27a2526df..a21e38a69 100644
|
||||||
|
--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
|
||||||
|
+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
|
||||||
|
@@ -43,6 +43,7 @@
|
||||||
|
#include "qxcbwindow.h"
|
||||||
|
#include "qtouchdevice.h"
|
||||||
|
#include "QtCore/qmetaobject.h"
|
||||||
|
+#include "QtCore/qendian.h"
|
||||||
|
#include <qpa/qwindowsysteminterface_p.h>
|
||||||
|
#include <QDebug>
|
||||||
|
#include <cmath>
|
||||||
|
@@ -66,6 +67,7 @@ void QXcbConnection::xi2SelectStateEvents()
|
||||||
|
xiEventMask.mask = XCB_INPUT_XI_EVENT_MASK_HIERARCHY;
|
||||||
|
xiEventMask.mask |= XCB_INPUT_XI_EVENT_MASK_DEVICE_CHANGED;
|
||||||
|
xiEventMask.mask |= XCB_INPUT_XI_EVENT_MASK_PROPERTY;
|
||||||
|
+ xiEventMask.mask = qToLittleEndian(xiEventMask.mask);
|
||||||
|
xcb_input_xi_select_events(xcb_connection(), rootWindow(), 1, &xiEventMask.header);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -90,7 +92,7 @@ void QXcbConnection::xi2SelectDeviceEvents(xcb_window_t window)
|
||||||
|
qt_xcb_input_event_mask_t mask;
|
||||||
|
mask.header.deviceid = XCB_INPUT_DEVICE_ALL_MASTER;
|
||||||
|
mask.header.mask_len = 1;
|
||||||
|
- mask.mask = bitMask;
|
||||||
|
+ mask.mask = qToLittleEndian(bitMask);
|
||||||
|
xcb_void_cookie_t cookie =
|
||||||
|
xcb_input_xi_select_events_checked(xcb_connection(), window, 1, &mask.header);
|
||||||
|
xcb_generic_error_t *error = xcb_request_check(xcb_connection(), cookie);
|
||||||
|
@@ -363,7 +365,7 @@ void QXcbConnection::xi2SelectDeviceEventsCompatibility(xcb_window_t window)
|
||||||
|
qt_xcb_input_event_mask_t xiMask;
|
||||||
|
xiMask.header.deviceid = XCB_INPUT_DEVICE_ALL_MASTER;
|
||||||
|
xiMask.header.mask_len = 1;
|
||||||
|
- xiMask.mask = mask;
|
||||||
|
+ xiMask.mask = qToLittleEndian(mask);
|
||||||
|
|
||||||
|
xcb_void_cookie_t cookie =
|
||||||
|
xcb_input_xi_select_events_checked(xcb_connection(), window, 1, &xiMask.header);
|
||||||
|
@@ -390,7 +392,7 @@ void QXcbConnection::xi2SelectDeviceEventsCompatibility(xcb_window_t window)
|
||||||
|
tabletDevices.insert(deviceId);
|
||||||
|
xiEventMask[i].header.deviceid = deviceId;
|
||||||
|
xiEventMask[i].header.mask_len = 1;
|
||||||
|
- xiEventMask[i].mask = mask;
|
||||||
|
+ xiEventMask[i].mask = qToLittleEndian(mask);
|
||||||
|
}
|
||||||
|
xcb_input_xi_select_events(xcb_connection(), window, nrTablets, &(xiEventMask.data()->header));
|
||||||
|
}
|
||||||
|
@@ -406,7 +408,7 @@ void QXcbConnection::xi2SelectDeviceEventsCompatibility(xcb_window_t window)
|
||||||
|
#endif
|
||||||
|
xiEventMask[i].header.deviceid = scrollingDevice.deviceId;
|
||||||
|
xiEventMask[i].header.mask_len = 1;
|
||||||
|
- xiEventMask[i].mask = mask;
|
||||||
|
+ xiEventMask[i].mask = qToLittleEndian(mask);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
xcb_input_xi_select_events(xcb_connection(), window, i, &(xiEventMask.data()->header));
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
@ -6,6 +6,8 @@ Mon Apr 03 10:48:53 UTC 2023 - Fabian Vogt <fvogt@suse.com>
|
|||||||
* Add QImage null check when QOpenGLTexture converts
|
* Add QImage null check when QOpenGLTexture converts
|
||||||
- Add patch to fix return key handling in QGroupBox on GNOME (bsc#1209364):
|
- Add patch to fix return key handling in QGroupBox on GNOME (bsc#1209364):
|
||||||
* 0001-Revert-QGnomeTheme-Allow-Space-Return-Enter-and-Sele.patch
|
* 0001-Revert-QGnomeTheme-Allow-Space-Return-Enter-and-Sele.patch
|
||||||
|
- Add patch to fix XInput2 events in big-endian X11 clients (bsc#1204883, QTBUG-105157):
|
||||||
|
* big-endian-scroll.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Mar 16 08:04:12 UTC 2023 - Fabian Vogt <fvogt@suse.com>
|
Thu Mar 16 08:04:12 UTC 2023 - Fabian Vogt <fvogt@suse.com>
|
||||||
|
@ -48,6 +48,7 @@ Source4: qtlogging.ini
|
|||||||
Source99: libqt5-qtbase-rpmlintrc
|
Source99: libqt5-qtbase-rpmlintrc
|
||||||
# patches 0-999 are openSUSE and/or non-upstream(able) patches #
|
# patches 0-999 are openSUSE and/or non-upstream(able) patches #
|
||||||
Patch1: 0001-Revert-QGnomeTheme-Allow-Space-Return-Enter-and-Sele.patch
|
Patch1: 0001-Revert-QGnomeTheme-Allow-Space-Return-Enter-and-Sele.patch
|
||||||
|
Patch2: big-endian-scroll.patch
|
||||||
Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch
|
Patch3: 0001-Revert-QMenu-hide-when-a-QWidgetAction-fires-the-tri.patch
|
||||||
# Proposed: https://bugreports.qt.io/browse/QTBUG-88491
|
# Proposed: https://bugreports.qt.io/browse/QTBUG-88491
|
||||||
Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch
|
Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user