- Prepare to 5.5.1 release with Qt 5.5.1 RC
This commit is contained in:
parent
eed09bb685
commit
67f6debfaa
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
/qtbase-opensource-src-5.4.2.tar.xz
|
/qtbase-opensource-src-5.4.2.tar.xz
|
||||||
/qtbase-opensource-src-5.5.0.tar.xz
|
/qtbase-opensource-src-5.5.0.tar.xz
|
||||||
|
/qtbase-opensource-src-5.5.1-rc1.tar.xz
|
||||||
|
@ -1,55 +0,0 @@
|
|||||||
From a8621a3f85e64f1252a80ae81a6e22554f7b3f44 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sune Vuorela <sune@vuorela.dk>
|
|
||||||
Date: Mon, 15 Jun 2015 21:16:24 +0200
|
|
||||||
Subject: [PATCH 055/299] Respect manual set icon themes.
|
|
||||||
|
|
||||||
Currently all icon resolving is passed thru to the platform icon engine,
|
|
||||||
even in the case where the application developer has set their own
|
|
||||||
requested icon theme. In that case, the application developer
|
|
||||||
specifically does not want to follow the icon theme of the system, so
|
|
||||||
don't ask the platform, but rely on Qt code instead.
|
|
||||||
|
|
||||||
It leads to bugs reported to platform icon theme providers like this:
|
|
||||||
MMC: https://github.com/MultiMC/MultiMC5/issues/796
|
|
||||||
KDE: https://bugs.kde.org/show_bug.cgi?id=344469
|
|
||||||
|
|
||||||
Thanks to the multimc people (Jan Dalheimer and Peterix) for the
|
|
||||||
reports and testcases.
|
|
||||||
|
|
||||||
Change-Id: I52cda6f688b2ef9e44e060c8ae67831cb02b26c8
|
|
||||||
Reviewed-by: Eike Hein <hein@kde.org>
|
|
||||||
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
|
|
||||||
---
|
|
||||||
src/gui/image/qicon.cpp | 3 ++-
|
|
||||||
src/gui/image/qiconloader_p.h | 1 +
|
|
||||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
|
|
||||||
index 40ba84b..cafc966 100644
|
|
||||||
--- a/src/gui/image/qicon.cpp
|
|
||||||
+++ b/src/gui/image/qicon.cpp
|
|
||||||
@@ -1170,7 +1170,8 @@ QIcon QIcon::fromTheme(const QString &name, const QIcon &fallback)
|
|
||||||
icon = *qtIconCache()->object(name);
|
|
||||||
} else {
|
|
||||||
QPlatformTheme * const platformTheme = QGuiApplicationPrivate::platformTheme();
|
|
||||||
- QIconEngine * const engine = platformTheme ? platformTheme->createIconEngine(name)
|
|
||||||
+ bool hasUserTheme = QIconLoader::instance()->hasUserTheme();
|
|
||||||
+ QIconEngine * const engine = (platformTheme && !hasUserTheme) ? platformTheme->createIconEngine(name)
|
|
||||||
: new QIconLoaderEngine(name);
|
|
||||||
QIcon *cachedIcon = new QIcon(engine);
|
|
||||||
icon = *cachedIcon;
|
|
||||||
diff --git a/src/gui/image/qiconloader_p.h b/src/gui/image/qiconloader_p.h
|
|
||||||
index 38cf9c1..5b0362e 100644
|
|
||||||
--- a/src/gui/image/qiconloader_p.h
|
|
||||||
+++ b/src/gui/image/qiconloader_p.h
|
|
||||||
@@ -173,6 +173,7 @@ public:
|
|
||||||
void updateSystemTheme();
|
|
||||||
void invalidateKey() { m_themeKey++; }
|
|
||||||
void ensureInitialized();
|
|
||||||
+ bool hasUserTheme() const { return !m_userTheme.isEmpty(); }
|
|
||||||
|
|
||||||
private:
|
|
||||||
QThemeIconInfo findIconHelper(const QString &themeName,
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
@ -1,203 +0,0 @@
|
|||||||
From 61a0656eb4149fe793854d703521bf2df48f8f7a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Stefan Becker <chemobejk@gmail.com>
|
|
||||||
Date: Mon, 25 May 2015 17:46:49 +0300
|
|
||||||
Subject: [PATCH 123/255] xcb: set SM_CLIENT_ID property
|
|
||||||
|
|
||||||
SM_CLIENT_ID is required by kwin for proper session management.
|
|
||||||
|
|
||||||
- move client leader initialization from screen to connection
|
|
||||||
- add SM_CLIENT_ID property to client leader
|
|
||||||
|
|
||||||
Change-Id: I19fb0d098811c865f6f13d5bc3e59a173c596a65
|
|
||||||
Task-number: QTBUG-46310
|
|
||||||
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
|
|
||||||
Reviewed-by: Uli Schlachter <psychon@znc.in>
|
|
||||||
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
|
|
||||||
---
|
|
||||||
src/plugins/platforms/xcb/qxcbconnection.cpp | 53 ++++++++++++++++++++++++++++
|
|
||||||
src/plugins/platforms/xcb/qxcbconnection.h | 2 ++
|
|
||||||
src/plugins/platforms/xcb/qxcbscreen.cpp | 32 -----------------
|
|
||||||
src/plugins/platforms/xcb/qxcbscreen.h | 3 --
|
|
||||||
src/plugins/platforms/xcb/qxcbwindow.cpp | 4 +--
|
|
||||||
5 files changed, 57 insertions(+), 37 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/platforms/xcb/qxcbconnection.cpp b/src/plugins/platforms/xcb/qxcbconnection.cpp
|
|
||||||
index 4e558f9..74f48b0 100644
|
|
||||||
--- a/src/plugins/platforms/xcb/qxcbconnection.cpp
|
|
||||||
+++ b/src/plugins/platforms/xcb/qxcbconnection.cpp
|
|
||||||
@@ -454,6 +454,7 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
|
|
||||||
, has_xkb(false)
|
|
||||||
, m_buttons(0)
|
|
||||||
, m_focusWindow(0)
|
|
||||||
+ , m_clientLeader(0)
|
|
||||||
, m_systemTrayTracker(0)
|
|
||||||
, m_glIntegration(Q_NULLPTR)
|
|
||||||
, m_xiGrab(false)
|
|
||||||
@@ -1336,6 +1337,58 @@ xcb_window_t QXcbConnection::rootWindow()
|
|
||||||
return s ? s->root() : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+xcb_window_t QXcbConnection::clientLeader()
|
|
||||||
+{
|
|
||||||
+ if (m_clientLeader == 0) {
|
|
||||||
+ m_clientLeader = xcb_generate_id(xcb_connection());
|
|
||||||
+ QXcbScreen *screen = primaryScreen();
|
|
||||||
+ Q_XCB_CALL(xcb_create_window(xcb_connection(),
|
|
||||||
+ XCB_COPY_FROM_PARENT,
|
|
||||||
+ m_clientLeader,
|
|
||||||
+ screen->root(),
|
|
||||||
+ 0, 0, 1, 1,
|
|
||||||
+ 0,
|
|
||||||
+ XCB_WINDOW_CLASS_INPUT_OUTPUT,
|
|
||||||
+ screen->screen()->root_visual,
|
|
||||||
+ 0, 0));
|
|
||||||
+#ifndef QT_NO_DEBUG
|
|
||||||
+ QByteArray ba("Qt client leader window");
|
|
||||||
+ Q_XCB_CALL(xcb_change_property(xcb_connection(),
|
|
||||||
+ XCB_PROP_MODE_REPLACE,
|
|
||||||
+ m_clientLeader,
|
|
||||||
+ atom(QXcbAtom::_NET_WM_NAME),
|
|
||||||
+ atom(QXcbAtom::UTF8_STRING),
|
|
||||||
+ 8,
|
|
||||||
+ ba.length(),
|
|
||||||
+ ba.constData()));
|
|
||||||
+#endif
|
|
||||||
+ Q_XCB_CALL(xcb_change_property(xcb_connection(),
|
|
||||||
+ XCB_PROP_MODE_REPLACE,
|
|
||||||
+ m_clientLeader,
|
|
||||||
+ atom(QXcbAtom::WM_CLIENT_LEADER),
|
|
||||||
+ XCB_ATOM_WINDOW,
|
|
||||||
+ 32,
|
|
||||||
+ 1,
|
|
||||||
+ &m_clientLeader));
|
|
||||||
+
|
|
||||||
+#if !defined(QT_NO_SESSIONMANAGER) && defined(XCB_USE_SM)
|
|
||||||
+ // If we are session managed, inform the window manager about it
|
|
||||||
+ QByteArray session = qGuiApp->sessionId().toLatin1();
|
|
||||||
+ if (!session.isEmpty()) {
|
|
||||||
+ Q_XCB_CALL(xcb_change_property(xcb_connection(),
|
|
||||||
+ XCB_PROP_MODE_REPLACE,
|
|
||||||
+ m_clientLeader,
|
|
||||||
+ atom(QXcbAtom::SM_CLIENT_ID),
|
|
||||||
+ XCB_ATOM_STRING,
|
|
||||||
+ 8,
|
|
||||||
+ session.length(),
|
|
||||||
+ session.constData()));
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ }
|
|
||||||
+ return m_clientLeader;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#ifdef XCB_USE_XLIB
|
|
||||||
void *QXcbConnection::xlib_display() const
|
|
||||||
{
|
|
||||||
diff --git a/src/plugins/platforms/xcb/qxcbconnection.h b/src/plugins/platforms/xcb/qxcbconnection.h
|
|
||||||
index 348af5f..ee5ed89 100644
|
|
||||||
--- a/src/plugins/platforms/xcb/qxcbconnection.h
|
|
||||||
+++ b/src/plugins/platforms/xcb/qxcbconnection.h
|
|
||||||
@@ -403,6 +403,7 @@ public:
|
|
||||||
|
|
||||||
QXcbWMSupport *wmSupport() const { return m_wmSupport.data(); }
|
|
||||||
xcb_window_t rootWindow();
|
|
||||||
+ xcb_window_t clientLeader();
|
|
||||||
|
|
||||||
bool hasDefaultVisualId() const { return m_defaultVisualId != UINT_MAX; }
|
|
||||||
xcb_visualid_t defaultVisualId() const { return m_defaultVisualId; }
|
|
||||||
@@ -640,6 +641,7 @@ private:
|
|
||||||
|
|
||||||
QXcbWindow *m_focusWindow;
|
|
||||||
|
|
||||||
+ xcb_window_t m_clientLeader;
|
|
||||||
QByteArray m_startupId;
|
|
||||||
QXcbSystemTrayTracker *m_systemTrayTracker;
|
|
||||||
QXcbGlIntegration *m_glIntegration;
|
|
||||||
diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
||||||
index 040cea1..c7f8114 100644
|
|
||||||
--- a/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
||||||
+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp
|
|
||||||
@@ -170,38 +170,6 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, QXcbVirtualDesktop *virtualDe
|
|
||||||
else
|
|
||||||
m_syncRequestSupported = true;
|
|
||||||
|
|
||||||
- m_clientLeader = xcb_generate_id(xcb_connection());
|
|
||||||
- Q_XCB_CALL2(xcb_create_window(xcb_connection(),
|
|
||||||
- XCB_COPY_FROM_PARENT,
|
|
||||||
- m_clientLeader,
|
|
||||||
- screen()->root,
|
|
||||||
- 0, 0, 1, 1,
|
|
||||||
- 0,
|
|
||||||
- XCB_WINDOW_CLASS_INPUT_OUTPUT,
|
|
||||||
- screen()->root_visual,
|
|
||||||
- 0, 0), connection);
|
|
||||||
-#ifndef QT_NO_DEBUG
|
|
||||||
- QByteArray ba("Qt client leader window for screen ");
|
|
||||||
- ba += m_outputName.toUtf8();
|
|
||||||
- Q_XCB_CALL2(xcb_change_property(xcb_connection(),
|
|
||||||
- XCB_PROP_MODE_REPLACE,
|
|
||||||
- m_clientLeader,
|
|
||||||
- atom(QXcbAtom::_NET_WM_NAME),
|
|
||||||
- atom(QXcbAtom::UTF8_STRING),
|
|
||||||
- 8,
|
|
||||||
- ba.length(),
|
|
||||||
- ba.constData()), connection);
|
|
||||||
-#endif
|
|
||||||
-
|
|
||||||
- Q_XCB_CALL2(xcb_change_property(xcb_connection(),
|
|
||||||
- XCB_PROP_MODE_REPLACE,
|
|
||||||
- m_clientLeader,
|
|
||||||
- atom(QXcbAtom::WM_CLIENT_LEADER),
|
|
||||||
- XCB_ATOM_WINDOW,
|
|
||||||
- 32,
|
|
||||||
- 1,
|
|
||||||
- &m_clientLeader), connection);
|
|
||||||
-
|
|
||||||
xcb_depth_iterator_t depth_iterator =
|
|
||||||
xcb_screen_allowed_depths_iterator(screen());
|
|
||||||
|
|
||||||
diff --git a/src/plugins/platforms/xcb/qxcbscreen.h b/src/plugins/platforms/xcb/qxcbscreen.h
|
|
||||||
index 4451947..ccc30c0 100644
|
|
||||||
--- a/src/plugins/platforms/xcb/qxcbscreen.h
|
|
||||||
+++ b/src/plugins/platforms/xcb/qxcbscreen.h
|
|
||||||
@@ -116,8 +116,6 @@ public:
|
|
||||||
xcb_randr_crtc_t crtc() const { return m_crtc; }
|
|
||||||
xcb_randr_mode_t mode() const { return m_mode; }
|
|
||||||
|
|
||||||
- xcb_window_t clientLeader() const { return m_clientLeader; }
|
|
||||||
-
|
|
||||||
void windowShown(QXcbWindow *window);
|
|
||||||
QString windowManagerName() const { return m_windowManagerName; }
|
|
||||||
bool syncRequestSupported() const { return m_syncRequestSupported; }
|
|
||||||
@@ -173,7 +171,6 @@ private:
|
|
||||||
Qt::ScreenOrientation m_orientation;
|
|
||||||
QString m_windowManagerName;
|
|
||||||
bool m_syncRequestSupported;
|
|
||||||
- xcb_window_t m_clientLeader;
|
|
||||||
QMap<xcb_visualid_t, xcb_visualtype_t> m_visuals;
|
|
||||||
QMap<xcb_visualid_t, quint8> m_visualDepths;
|
|
||||||
QXcbCursor *m_cursor;
|
|
||||||
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
|
|
||||||
index 9c5609b..af4a88b 100644
|
|
||||||
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
|
|
||||||
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
|
|
||||||
@@ -622,7 +622,7 @@ void QXcbWindow::create()
|
|
||||||
|
|
||||||
xcb_set_wm_hints(xcb_connection(), m_window, &hints);
|
|
||||||
|
|
||||||
- xcb_window_t leader = platformScreen->clientLeader();
|
|
||||||
+ xcb_window_t leader = connection()->clientLeader();
|
|
||||||
Q_XCB_CALL(xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
|
|
||||||
atom(QXcbAtom::WM_CLIENT_LEADER), XCB_ATOM_WINDOW, 32,
|
|
||||||
1, &leader));
|
|
||||||
@@ -874,7 +874,7 @@ void QXcbWindow::show()
|
|
||||||
// Default to client leader if there is no transient parent, else modal dialogs can
|
|
||||||
// be hidden by their parents.
|
|
||||||
if (!transientXcbParent)
|
|
||||||
- transientXcbParent = xcbScreen()->clientLeader();
|
|
||||||
+ transientXcbParent = connection()->clientLeader();
|
|
||||||
if (transientXcbParent) { // ICCCM 4.1.2.6
|
|
||||||
Q_XCB_CALL(xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
|
|
||||||
XCB_ATOM_WM_TRANSIENT_FOR, XCB_ATOM_WINDOW, 32,
|
|
||||||
--
|
|
||||||
2.4.3
|
|
||||||
|
|
@ -39,12 +39,12 @@
|
|||||||
|
|
||||||
%define examples 1
|
%define examples 1
|
||||||
|
|
||||||
#define prerelease rc
|
%define prerelease rc1
|
||||||
|
|
||||||
Summary: Qt5 - QtBase components
|
Summary: Qt5 - QtBase components
|
||||||
Name: qt5-qtbase
|
Name: qt5-qtbase
|
||||||
Version: 5.5.0
|
Version: 5.5.1
|
||||||
Release: 17%{?dist}
|
Release: 1%{?dist}
|
||||||
|
|
||||||
# See LGPL_EXCEPTIONS.txt, for exception details
|
# See LGPL_EXCEPTIONS.txt, for exception details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||||
@ -80,9 +80,6 @@ Patch12: qtbase-opensource-src-5.2.0-enable_ft_lcdfilter.patch
|
|||||||
# (often in kde apps), keep an eye on https://git.reviewboard.kde.org/r/103699/
|
# (often in kde apps), keep an eye on https://git.reviewboard.kde.org/r/103699/
|
||||||
Patch25: qtbase-opensource-src-5.5.1-qdbusconnection_no_debug.patch
|
Patch25: qtbase-opensource-src-5.5.1-qdbusconnection_no_debug.patch
|
||||||
|
|
||||||
# fix issue on big endian platform
|
|
||||||
Patch13: qtbase-opensource-src-5.5.x-big-endian.patch
|
|
||||||
|
|
||||||
# upstreamable patches
|
# upstreamable patches
|
||||||
# support poll
|
# support poll
|
||||||
# https://bugreports.qt-project.org/browse/QTBUG-27195
|
# https://bugreports.qt-project.org/browse/QTBUG-27195
|
||||||
@ -93,28 +90,11 @@ Patch50: qt5-poll.patch
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1083664
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1083664
|
||||||
Patch51: qtbase-opensource-src-5.5-disconnect_displays.patch
|
Patch51: qtbase-opensource-src-5.5-disconnect_displays.patch
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1219173
|
|
||||||
# https://bugreports.qt.io/browse/QTBUG-33093
|
|
||||||
# https://codereview.qt-project.org/#/c/95219/
|
|
||||||
Patch52: qtbase-opensource-src-5.4.1-QTBUG-33093.patch
|
|
||||||
|
|
||||||
# https://bugreports.qt.io/browse/QTBUG-45484
|
|
||||||
# QWidget::setWindowRole does nothing
|
|
||||||
# adapted to apply on top of patch51
|
|
||||||
Patch53: qtbase-opensource-src-5.4.1-QTBUG-45484.patch
|
|
||||||
|
|
||||||
## upstream patches
|
## upstream patches
|
||||||
# workaround https://bugreports.qt-project.org/browse/QTBUG-43057
|
# workaround https://bugreports.qt-project.org/browse/QTBUG-43057
|
||||||
# 'make docs' crash on el6, use qSort instead of std::sort
|
# 'make docs' crash on el6, use qSort instead of std::sort
|
||||||
Patch100: qtbase-opensource-src-5.4.0-QTBUG-43057.patch
|
Patch100: qtbase-opensource-src-5.4.0-QTBUG-43057.patch
|
||||||
|
|
||||||
# https://bugreports.qt.io/browse/QTBUG-46310
|
|
||||||
#SM_CLIENT_ID property is not set
|
|
||||||
Patch223: 0123-xcb-set-SM_CLIENT_ID-property.patch
|
|
||||||
|
|
||||||
# https://bugs.kde.org/show_bug.cgi?id=344469
|
|
||||||
Patch155: 0055-Respect-manual-set-icon-themes.patch
|
|
||||||
|
|
||||||
# macros, be mindful to keep sync'd with macros.qt5
|
# macros, be mindful to keep sync'd with macros.qt5
|
||||||
Source1: macros.qt5
|
Source1: macros.qt5
|
||||||
%define _qt5 %{name}
|
%define _qt5 %{name}
|
||||||
@ -123,7 +103,6 @@ Source1: macros.qt5
|
|||||||
# -devel bindir items (still) conflict with qt4
|
# -devel bindir items (still) conflict with qt4
|
||||||
# at least until this is all implemented,
|
# at least until this is all implemented,
|
||||||
# http://lists.qt-project.org/pipermail/development/2012-November/007990.html
|
# http://lists.qt-project.org/pipermail/development/2012-November/007990.html
|
||||||
#define _qt5_bindir %{_bindir}
|
|
||||||
%define _qt5_bindir %{_qt5_prefix}/bin
|
%define _qt5_bindir %{_qt5_prefix}/bin
|
||||||
%define _qt5_datadir %{_datadir}/qt5
|
%define _qt5_datadir %{_datadir}/qt5
|
||||||
%define _qt5_docdir %{_docdir}/qt5
|
%define _qt5_docdir %{_docdir}/qt5
|
||||||
@ -375,18 +354,13 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags
|
|||||||
%patch4 -p1 -b .QTBUG-35459
|
%patch4 -p1 -b .QTBUG-35459
|
||||||
%patch12 -p1 -b .enable_ft_lcdfilter
|
%patch12 -p1 -b .enable_ft_lcdfilter
|
||||||
%patch25 -p1 -b .qdbusconnection_no_debug
|
%patch25 -p1 -b .qdbusconnection_no_debug
|
||||||
%patch13 -p1 -b .big-endian
|
|
||||||
|
|
||||||
#patch50 -p1 -b .poll
|
#patch50 -p1 -b .poll
|
||||||
%patch51 -p1 -b .disconnect_displays
|
%patch51 -p1 -b .disconnect_displays
|
||||||
%patch52 -p1 -b .QTBUG-33093
|
|
||||||
%patch53 -p1 -b .QTBUG-45484
|
|
||||||
|
|
||||||
%if 0%{?rhel} == 6
|
%if 0%{?rhel} == 6
|
||||||
%patch100 -p1 -b .QTBUG-43057
|
%patch100 -p1 -b .QTBUG-43057
|
||||||
%endif
|
%endif
|
||||||
%patch155 -p1 -b .0055
|
|
||||||
%patch223 -p1 -b .QTBUG-46310
|
|
||||||
|
|
||||||
# drop -fexceptions from $RPM_OPT_FLAGS
|
# drop -fexceptions from $RPM_OPT_FLAGS
|
||||||
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
|
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'`
|
||||||
@ -524,7 +498,7 @@ translationdir=%{_qt5_translationdir}
|
|||||||
|
|
||||||
Name: Qt5
|
Name: Qt5
|
||||||
Description: Qt5 Configuration
|
Description: Qt5 Configuration
|
||||||
Version: %{version}
|
Version: 5.5.1
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# rpm macros
|
# rpm macros
|
||||||
@ -943,6 +917,10 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Sep 29 2015 Helio Chissini de Castro <helio@kde.org> - 5.5.1-1
|
||||||
|
- Update to Qt 5.5.1 RC1
|
||||||
|
- Patchs 13, 52, 53, 155, 223 removed due to inclusion upstream
|
||||||
|
|
||||||
* Wed Aug 19 2015 Rex Dieter <rdieter@fedoraproject.org> 5.5.0-17
|
* Wed Aug 19 2015 Rex Dieter <rdieter@fedoraproject.org> 5.5.0-17
|
||||||
- unconditionally undo valgrind hack when done (#1255054)
|
- unconditionally undo valgrind hack when done (#1255054)
|
||||||
|
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
diff -up qtbase-opensource-src-5.4.1/src/gui/kernel/qshortcutmap.cpp.QTBUG-33093 qtbase-opensource-src-5.4.1/src/gui/kernel/qshortcutmap.cpp
|
|
||||||
--- qtbase-opensource-src-5.4.1/src/gui/kernel/qshortcutmap.cpp.QTBUG-33093 2015-02-16 22:56:48.000000000 -0600
|
|
||||||
+++ qtbase-opensource-src-5.4.1/src/gui/kernel/qshortcutmap.cpp 2015-05-06 14:29:44.991086570 -0500
|
|
||||||
@@ -380,9 +380,7 @@ QKeySequence::SequenceMatch QShortcutMap
|
|
||||||
result = find(e);
|
|
||||||
if (result == QKeySequence::NoMatch && (e->modifiers() & Qt::KeypadModifier)) {
|
|
||||||
// Try to find a match without keypad modifier
|
|
||||||
- QKeyEvent event = *e;
|
|
||||||
- event.setModifiers(e->modifiers() & ~Qt::KeypadModifier);
|
|
||||||
- result = find(&event);
|
|
||||||
+ result = find(e, Qt::KeypadModifier);
|
|
||||||
}
|
|
||||||
if (result == QKeySequence::NoMatch && e->modifiers() & Qt::ShiftModifier) {
|
|
||||||
// If Shift + Key_Backtab, also try Shift + Qt::Key_Tab
|
|
||||||
@@ -435,13 +433,13 @@ bool QShortcutMap::hasShortcutForKeySequ
|
|
||||||
which can be access through matches().
|
|
||||||
\sa matches
|
|
||||||
*/
|
|
||||||
-QKeySequence::SequenceMatch QShortcutMap::find(QKeyEvent *e)
|
|
||||||
+QKeySequence::SequenceMatch QShortcutMap::find(QKeyEvent *e, int ignoredModifiers)
|
|
||||||
{
|
|
||||||
Q_D(QShortcutMap);
|
|
||||||
if (!d->sequences.count())
|
|
||||||
return QKeySequence::NoMatch;
|
|
||||||
|
|
||||||
- createNewSequences(e, d->newEntries);
|
|
||||||
+ createNewSequences(e, d->newEntries, ignoredModifiers);
|
|
||||||
#if defined(DEBUG_QSHORTCUTMAP)
|
|
||||||
qDebug() << "Possible shortcut key sequences:" << d->newEntries;
|
|
||||||
#endif
|
|
||||||
@@ -543,7 +541,7 @@ void QShortcutMap::clearSequence(QVector
|
|
||||||
Alters \a seq to the new sequence state, based on the
|
|
||||||
current sequence state, and the new key event \a e.
|
|
||||||
*/
|
|
||||||
-void QShortcutMap::createNewSequences(QKeyEvent *e, QVector<QKeySequence> &ksl)
|
|
||||||
+void QShortcutMap::createNewSequences(QKeyEvent *e, QVector<QKeySequence> &ksl, int ignoredModifiers)
|
|
||||||
{
|
|
||||||
Q_D(QShortcutMap);
|
|
||||||
QList<int> possibleKeys = QKeyMapper::possibleKeys(e);
|
|
||||||
@@ -573,7 +571,7 @@ void QShortcutMap::createNewSequences(QK
|
|
||||||
curKsl.setKey(0, 2);
|
|
||||||
curKsl.setKey(0, 3);
|
|
||||||
}
|
|
||||||
- curKsl.setKey(possibleKeys.at(pkNum), index);
|
|
||||||
+ curKsl.setKey(possibleKeys.at(pkNum) & ~ignoredModifiers, index);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff -up qtbase-opensource-src-5.4.1/src/gui/kernel/qshortcutmap_p.h.QTBUG-33093 qtbase-opensource-src-5.4.1/src/gui/kernel/qshortcutmap_p.h
|
|
||||||
--- qtbase-opensource-src-5.4.1/src/gui/kernel/qshortcutmap_p.h.QTBUG-33093 2015-02-16 22:56:48.000000000 -0600
|
|
||||||
+++ qtbase-opensource-src-5.4.1/src/gui/kernel/qshortcutmap_p.h 2015-05-06 14:27:40.637978022 -0500
|
|
||||||
@@ -88,10 +88,10 @@ private:
|
|
||||||
QKeySequence::SequenceMatch state();
|
|
||||||
void dispatchEvent(QKeyEvent *e);
|
|
||||||
|
|
||||||
- QKeySequence::SequenceMatch find(QKeyEvent *e);
|
|
||||||
+ QKeySequence::SequenceMatch find(QKeyEvent *e, int ignoredModifiers = 0);
|
|
||||||
QKeySequence::SequenceMatch matches(const QKeySequence &seq1, const QKeySequence &seq2) const;
|
|
||||||
QVector<const QShortcutEntry *> matches() const;
|
|
||||||
- void createNewSequences(QKeyEvent *e, QVector<QKeySequence> &ksl);
|
|
||||||
+ void createNewSequences(QKeyEvent *e, QVector<QKeySequence> &ksl, int ignoredModifiers);
|
|
||||||
void clearSequence(QVector<QKeySequence> &ksl);
|
|
||||||
int translateModifiers(Qt::KeyboardModifiers modifiers);
|
|
||||||
|
|
@ -1,164 +0,0 @@
|
|||||||
From 7187a71d80d5bd14171dae1215df454c64f8c8b8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Alexander Volkov <a.volkov@rusbitech.ru>
|
|
||||||
Date: Mon, 8 Jun 2015 14:35:22 +0300
|
|
||||||
Subject: [PATCH 1/2] Fix QWidget::setWindowRole()
|
|
||||||
|
|
||||||
Introduce QXcbWindowFunctions::setWmWindowRole() and call it either from
|
|
||||||
the implementation of QWidget::setWindowRole() or after the creation of
|
|
||||||
the corresponding QWidgetWindow.
|
|
||||||
|
|
||||||
Change-Id: I143450f4673dd707bb491c1d0f0e8b61d564283d
|
|
||||||
Task-number: QTBUG-45484
|
|
||||||
---
|
|
||||||
.../xcbfunctions/qxcbwindowfunctions.h | 10 ++++++++++
|
|
||||||
src/plugins/platforms/xcb/qxcbnativeinterface.cpp | 3 +++
|
|
||||||
src/plugins/platforms/xcb/qxcbwindow.cpp | 21 +++++++++++++++++++++
|
|
||||||
src/plugins/platforms/xcb/qxcbwindow.h | 2 ++
|
|
||||||
src/widgets/kernel/qwidget.cpp | 12 +++++++-----
|
|
||||||
5 files changed, 43 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/platformheaders/xcbfunctions/qxcbwindowfunctions.h b/src/platformheaders/xcbfunctions/qxcbwindowfunctions.h
|
|
||||||
index ae05cf5..0f83a99 100644
|
|
||||||
--- a/src/platformheaders/xcbfunctions/qxcbwindowfunctions.h
|
|
||||||
+++ b/src/platformheaders/xcbfunctions/qxcbwindowfunctions.h
|
|
||||||
@@ -83,6 +83,16 @@ public:
|
|
||||||
return func(window);
|
|
||||||
return UINT_MAX;
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+ typedef void (*SetWmWindowRole)(QWindow *window, const QByteArray &role);
|
|
||||||
+ static const QByteArray setWmWindowRoleIdentifier() { return QByteArrayLiteral("XcbSetWmWindowRole"); }
|
|
||||||
+
|
|
||||||
+ static void setWmWindowRole(QWindow *window, const QByteArray &role)
|
|
||||||
+ {
|
|
||||||
+ SetWmWindowRole func = reinterpret_cast<SetWmWindowRole>(QGuiApplication::platformFunction(setWmWindowRoleIdentifier()));
|
|
||||||
+ if (func)
|
|
||||||
+ func(window, role);
|
|
||||||
+ }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
|
|
||||||
index 8bf9003..3928da3 100644
|
|
||||||
--- a/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
|
|
||||||
+++ b/src/plugins/platforms/xcb/qxcbnativeinterface.cpp
|
|
||||||
@@ -395,6 +395,9 @@ QFunctionPointer QXcbNativeInterface::platformFunction(const QByteArray &functio
|
|
||||||
if (function == QXcbWindowFunctions::visualIdIdentifier()) {
|
|
||||||
return QFunctionPointer(QXcbWindowFunctions::VisualId(QXcbWindow::visualIdStatic));
|
|
||||||
}
|
|
||||||
+ if (function == QXcbWindowFunctions::setWmWindowRoleIdentifier()) {
|
|
||||||
+ return QFunctionPointer(QXcbWindow::setWmWindowRoleStatic);
|
|
||||||
+ }
|
|
||||||
return Q_NULLPTR;
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/plugins/platforms/xcb/qxcbwindow.cpp b/src/plugins/platforms/xcb/qxcbwindow.cpp
|
|
||||||
index d1b6888..7c043fb 100644
|
|
||||||
--- a/src/plugins/platforms/xcb/qxcbwindow.cpp
|
|
||||||
+++ b/src/plugins/platforms/xcb/qxcbwindow.cpp
|
|
||||||
@@ -322,6 +322,7 @@ static inline XTextProperty* qstringToXTP(Display *dpy, const QString& s)
|
|
||||||
#endif // XCB_USE_XLIB
|
|
||||||
|
|
||||||
static const char *wm_window_type_property_id = "_q_xcb_wm_window_type";
|
|
||||||
+static const char *wm_window_role_property_id = "_q_xcb_wm_window_role";
|
|
||||||
|
|
||||||
QXcbWindow::QXcbWindow(QWindow *window)
|
|
||||||
: QPlatformWindow(window)
|
|
||||||
@@ -660,6 +661,11 @@ void QXcbWindow::create()
|
|
||||||
setOpacity(opacity);
|
|
||||||
if (window()->isTopLevel())
|
|
||||||
setWindowIcon(window()->icon());
|
|
||||||
+
|
|
||||||
+ if (window()->dynamicPropertyNames().contains(wm_window_type_property_id)) {
|
|
||||||
+ QByteArray wmWindowRole = window()->property(wm_window_type_property_id).toByteArray();
|
|
||||||
+ setWmWindowRole(wmWindowRole);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
QXcbWindow::~QXcbWindow()
|
|
||||||
@@ -1716,6 +1722,14 @@ uint QXcbWindow::visualIdStatic(QWindow *window)
|
|
||||||
return UINT_MAX;
|
|
||||||
}
|
|
||||||
|
|
||||||
+void QXcbWindow::setWmWindowRoleStatic(QWindow *window, const QByteArray &role)
|
|
||||||
+{
|
|
||||||
+ if (window->handle())
|
|
||||||
+ static_cast<QXcbWindow *>(window->handle())->setWmWindowRole(role);
|
|
||||||
+ else
|
|
||||||
+ window->setProperty(wm_window_role_property_id, role);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
QXcbWindowFunctions::WmWindowTypes QXcbWindow::wmWindowTypes() const
|
|
||||||
{
|
|
||||||
QXcbWindowFunctions::WmWindowTypes result(0);
|
|
||||||
@@ -1832,6 +1846,13 @@ void QXcbWindow::setWmWindowType(QXcbWindowFunctions::WmWindowTypes types)
|
|
||||||
xcb_flush(xcb_connection());
|
|
||||||
}
|
|
||||||
|
|
||||||
+void QXcbWindow::setWmWindowRole(const QByteArray &role)
|
|
||||||
+{
|
|
||||||
+ Q_XCB_CALL(xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
|
|
||||||
+ atom(QXcbAtom::WM_WINDOW_ROLE), XCB_ATOM_STRING, 8,
|
|
||||||
+ role.size(), role.constData()));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
class ExposeCompressor
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
diff --git a/src/plugins/platforms/xcb/qxcbwindow.h b/src/plugins/platforms/xcb/qxcbwindow.h
|
|
||||||
index e62bfcb..352db2e 100644
|
|
||||||
--- a/src/plugins/platforms/xcb/qxcbwindow.h
|
|
||||||
+++ b/src/plugins/platforms/xcb/qxcbwindow.h
|
|
||||||
@@ -140,10 +140,12 @@ public:
|
|
||||||
void updateNetWmUserTime(xcb_timestamp_t timestamp);
|
|
||||||
|
|
||||||
static void setWmWindowTypeStatic(QWindow *window, QXcbWindowFunctions::WmWindowTypes windowTypes);
|
|
||||||
+ static void setWmWindowRoleStatic(QWindow *window, const QByteArray &role);
|
|
||||||
static uint visualIdStatic(QWindow *window);
|
|
||||||
|
|
||||||
QXcbWindowFunctions::WmWindowTypes wmWindowTypes() const;
|
|
||||||
void setWmWindowType(QXcbWindowFunctions::WmWindowTypes types);
|
|
||||||
+ void setWmWindowRole(const QByteArray &role);
|
|
||||||
|
|
||||||
uint visualId() const;
|
|
||||||
|
|
||||||
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
|
|
||||||
index e701eb0..4e06a2f 100644
|
|
||||||
--- a/src/widgets/kernel/qwidget.cpp
|
|
||||||
+++ b/src/widgets/kernel/qwidget.cpp
|
|
||||||
@@ -100,6 +100,7 @@
|
|
||||||
|
|
||||||
#include "qwindowcontainer_p.h"
|
|
||||||
|
|
||||||
+#include "QtPlatformHeaders/qxcbwindowfunctions.h"
|
|
||||||
|
|
||||||
// widget/widget data creation count
|
|
||||||
//#define QWIDGET_EXTRA_DEBUG
|
|
||||||
@@ -1451,6 +1452,9 @@ void QWidgetPrivate::create_sys(WId window, bool initializeWindow, bool destroyO
|
|
||||||
|
|
||||||
data.window_flags = win->flags();
|
|
||||||
|
|
||||||
+ if (!topData()->role.isNull())
|
|
||||||
+ QXcbWindowFunctions::setWmWindowRole(win, topData()->role.toLatin1());
|
|
||||||
+
|
|
||||||
QBackingStore *store = q->backingStore();
|
|
||||||
|
|
||||||
if (!store) {
|
|
||||||
@@ -6254,13 +6258,12 @@ QString QWidget::windowRole() const
|
|
||||||
*/
|
|
||||||
void QWidget::setWindowRole(const QString &role)
|
|
||||||
{
|
|
||||||
-#if defined(Q_DEAD_CODE_FROM_QT4_X11)
|
|
||||||
Q_D(QWidget);
|
|
||||||
+ d->createTLExtra();
|
|
||||||
d->topData()->role = role;
|
|
||||||
- d->setWindowRole();
|
|
||||||
-#else
|
|
||||||
- Q_UNUSED(role)
|
|
||||||
-#endif
|
|
||||||
+
|
|
||||||
+ if (windowHandle())
|
|
||||||
+ QXcbWindowFunctions::setWmWindowRole(windowHandle(), role.toLatin1());
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
@ -1,12 +0,0 @@
|
|||||||
diff -up qtbase-opensource-src-5.5.0/src/gui/image/qimage_conversions.cpp.than qtbase-opensource-src-5.5.0/src/gui/image/qimage_conversions.cpp
|
|
||||||
--- qtbase-opensource-src-5.5.0/src/gui/image/qimage_conversions.cpp.than 2015-07-09 17:01:29.605707305 +0200
|
|
||||||
+++ qtbase-opensource-src-5.5.0/src/gui/image/qimage_conversions.cpp 2015-07-10 12:39:04.022599044 +0200
|
|
||||||
@@ -1103,7 +1103,7 @@ static bool mask_alpha_converter_rgbx_in
|
|
||||||
}
|
|
||||||
rgb_data += pad;
|
|
||||||
}
|
|
||||||
- data->format = DestFormat;
|
|
||||||
+ data->format = QImage::Format_RGBX8888;
|
|
||||||
return true;
|
|
||||||
#endif
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user