Accepting request 1077032 from KDE:Qt:5.15

- Add patch to fix XInput2 events in big-endian X11 clients (bsc#1204883, QTBUG-105157):
  * big-endian-scroll.patch (forwarded request 1077015 from favogt)

OBS-URL: https://build.opensuse.org/request/show/1077032
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=140
This commit is contained in:
Dominique Leuenberger 2023-04-04 19:17:39 +00:00 committed by Git OBS Bridge
commit 09277f3cd5
8 changed files with 131 additions and 8 deletions

View File

@ -0,0 +1,30 @@
From c9b74bceb38b662c1e112611b45e389e9d38b22b Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fvogt@suse.de>
Date: Mon, 3 Apr 2023 12:45:02 +0200
Subject: [PATCH] Revert "QGnomeTheme: Allow Space, Return, Enter and Select to
press buttons"
Workaround for https://bugreports.qt.io/browse/QTBUG-112523
This reverts commit f2eab01eb9f95f9eebc10bbe96e6c4810cd654b1.
---
src/platformsupport/themes/genericunix/qgenericunixthemes.cpp | 3 ---
1 file changed, 3 deletions(-)
diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
index 6e01af052c..cb1b39db64 100644
--- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
+++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp
@@ -755,9 +755,6 @@ QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const
return QVariant(QChar(0x2022));
case QPlatformTheme::UiEffects:
return QVariant(int(HoverEffect));
- case QPlatformTheme::ButtonPressKeys:
- return QVariant::fromValue(
- QList<Qt::Key>({ Qt::Key_Space, Qt::Key_Return, Qt::Key_Enter, Qt::Key_Select }));
default:
break;
}
--
2.40.0

View File

@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://invent.kde.org/qt/qt/qtbase.git</param>
<param name="changesrevision">38c54b3ff58972fa16810740fc43933620b6dc0d</param></service></servicedata>
<param name="changesrevision">6c09620dc84900c31a2d307a8640dbc15b1fcfdd</param></service></servicedata>

80
big-endian-scroll.patch Normal file
View 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

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Apr 03 10:48:53 UTC 2023 - Fabian Vogt <fvogt@suse.com>
- Update to version 5.15.8+kde185:
* QFSFileEngine: fix overflow bug when using lseek64
* Add QImage null check when QOpenGLTexture converts
- Add patch to fix return key handling in QGroupBox on GNOME (bsc#1209364):
* 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>

View File

@ -29,7 +29,7 @@
%bcond_without harfbuzz
Name: libqt5-qtbase
Version: 5.15.8+kde183
Version: 5.15.8+kde185
Release: 0
Summary: C++ Program Library, Core Components
License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1
@ -47,6 +47,8 @@ Source3: baselibs.conf
Source4: qtlogging.ini
Source99: libqt5-qtbase-rpmlintrc
# patches 0-999 are openSUSE and/or non-upstream(able) patches #
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
# Proposed: https://bugreports.qt.io/browse/QTBUG-88491
Patch4: 0001-Avoid-SIGABRT-on-platform-plugin-initialization-fail.patch

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f67b6fd6acf4d78594706823d52765f00ffedd44f8413acd7ac5abf17350e458
size 293213198

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b3df7af16720f81980f057b60657dd464ddb0c0f2b87c45ea3d4a3e685c5d2b4
size 293213198

View File

@ -1,4 +1,4 @@
name: qtbase-everywhere-src
version: 5.15.8+kde183
mtime: 1678880953
commit: 38c54b3ff58972fa16810740fc43933620b6dc0d
version: 5.15.8+kde185
mtime: 1679710430
commit: 6c09620dc84900c31a2d307a8640dbc15b1fcfdd