From 67f6debfaa3ea16ed73207d0b8d49b63a70b2323 Mon Sep 17 00:00:00 2001 From: Helio Chissini de Castro Date: Oct 05 2015 16:56:23 +0000 Subject: - Prepare to 5.5.1 release with Qt 5.5.1 RC --- diff --git a/.gitignore b/.gitignore index 77fa965..48d1421 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /qtbase-opensource-src-5.4.2.tar.xz /qtbase-opensource-src-5.5.0.tar.xz +/qtbase-opensource-src-5.5.1-rc1.tar.xz diff --git a/0055-Respect-manual-set-icon-themes.patch b/0055-Respect-manual-set-icon-themes.patch deleted file mode 100644 index 8db2929..0000000 --- a/0055-Respect-manual-set-icon-themes.patch +++ /dev/null @@ -1,55 +0,0 @@ -From a8621a3f85e64f1252a80ae81a6e22554f7b3f44 Mon Sep 17 00:00:00 2001 -From: Sune Vuorela -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 -Reviewed-by: Olivier Goffart (Woboq GmbH) ---- - 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 - diff --git a/0123-xcb-set-SM_CLIENT_ID-property.patch b/0123-xcb-set-SM_CLIENT_ID-property.patch deleted file mode 100644 index 0053536..0000000 --- a/0123-xcb-set-SM_CLIENT_ID-property.patch +++ /dev/null @@ -1,203 +0,0 @@ -From 61a0656eb4149fe793854d703521bf2df48f8f7a Mon Sep 17 00:00:00 2001 -From: Stefan Becker -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 -Reviewed-by: Uli Schlachter -Reviewed-by: Shawn Rutledge ---- - 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 m_visuals; - QMap 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 - diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 58cde2d..fa9e28d 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -39,12 +39,12 @@ %define examples 1 -#define prerelease rc +%define prerelease rc1 Summary: Qt5 - QtBase components Name: qt5-qtbase -Version: 5.5.0 -Release: 17%{?dist} +Version: 5.5.1 +Release: 1%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details 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/ 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 # support poll # 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 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 # workaround https://bugreports.qt-project.org/browse/QTBUG-43057 # 'make docs' crash on el6, use qSort instead of std::sort 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 Source1: macros.qt5 %define _qt5 %{name} @@ -123,7 +103,6 @@ Source1: macros.qt5 # -devel bindir items (still) conflict with qt4 # at least until this is all implemented, # http://lists.qt-project.org/pipermail/development/2012-November/007990.html -#define _qt5_bindir %{_bindir} %define _qt5_bindir %{_qt5_prefix}/bin %define _qt5_datadir %{_datadir}/qt5 %define _qt5_docdir %{_docdir}/qt5 @@ -375,18 +354,13 @@ rm -fv mkspecs/linux-g++*/qmake.conf.multilib-optflags %patch4 -p1 -b .QTBUG-35459 %patch12 -p1 -b .enable_ft_lcdfilter %patch25 -p1 -b .qdbusconnection_no_debug -%patch13 -p1 -b .big-endian #patch50 -p1 -b .poll %patch51 -p1 -b .disconnect_displays -%patch52 -p1 -b .QTBUG-33093 -%patch53 -p1 -b .QTBUG-45484 %if 0%{?rhel} == 6 %patch100 -p1 -b .QTBUG-43057 %endif -%patch155 -p1 -b .0055 -%patch223 -p1 -b .QTBUG-46310 # drop -fexceptions from $RPM_OPT_FLAGS RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS | sed 's|-fexceptions||g'` @@ -524,7 +498,7 @@ translationdir=%{_qt5_translationdir} Name: Qt5 Description: Qt5 Configuration -Version: %{version} +Version: 5.5.1 EOF # rpm macros @@ -943,6 +917,10 @@ fi %changelog +* Tue Sep 29 2015 Helio Chissini de Castro - 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 5.5.0-17 - unconditionally undo valgrind hack when done (#1255054) diff --git a/qtbase-opensource-src-5.4.1-QTBUG-33093.patch b/qtbase-opensource-src-5.4.1-QTBUG-33093.patch deleted file mode 100644 index cdb86c1..0000000 --- a/qtbase-opensource-src-5.4.1-QTBUG-33093.patch +++ /dev/null @@ -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 &ksl) -+void QShortcutMap::createNewSequences(QKeyEvent *e, QVector &ksl, int ignoredModifiers) - { - Q_D(QShortcutMap); - QList 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 matches() const; -- void createNewSequences(QKeyEvent *e, QVector &ksl); -+ void createNewSequences(QKeyEvent *e, QVector &ksl, int ignoredModifiers); - void clearSequence(QVector &ksl); - int translateModifiers(Qt::KeyboardModifiers modifiers); - diff --git a/qtbase-opensource-src-5.4.1-QTBUG-45484.patch b/qtbase-opensource-src-5.4.1-QTBUG-45484.patch deleted file mode 100644 index f27f040..0000000 --- a/qtbase-opensource-src-5.4.1-QTBUG-45484.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 7187a71d80d5bd14171dae1215df454c64f8c8b8 Mon Sep 17 00:00:00 2001 -From: Alexander Volkov -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(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(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()); - } - - /*! diff --git a/qtbase-opensource-src-5.5.x-big-endian.patch b/qtbase-opensource-src-5.5.x-big-endian.patch deleted file mode 100644 index 619fed3..0000000 --- a/qtbase-opensource-src-5.5.x-big-endian.patch +++ /dev/null @@ -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 - } diff --git a/sources b/sources index 2ee46db..2ea52fb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -252613b5a180c94d7196d10467a4f08b qtbase-opensource-src-5.5.0.tar.xz +5718a999679ef2489ae47d94f06af03b qtbase-opensource-src-5.5.1-rc1.tar.xz