diff --git a/0001-Do-not-overwrite-existing-event-mask-of-root-window.patch b/0001-Do-not-overwrite-existing-event-mask-of-root-window.patch deleted file mode 100644 index 3e42524..0000000 --- a/0001-Do-not-overwrite-existing-event-mask-of-root-window.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 075c36e39beedb33ec4b239d57075f54acb21acf Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= -Date: Mon, 16 Jun 2014 14:20:05 +0200 -Subject: [PATCH 1/1] Do not overwrite existing event mask of root window - -QXcbScreen installs its own event mask on the screen's root window. -This overwrites any existing event mask already set and by that -breaks applications when a new screen is added. - -By first fetching the existing event mask and adding it to the newly -installed event mask, Qt does no longer break applications also -installing an event mask on the root window. - -Task-number: QTBUG-39648 -Change-Id: I8686dd6ae49d0e807c6fe1ea4a231ff728bfcf25 -Reviewed-by: Friedemann Kleint -Reviewed-by: Shawn Rutledge -Reviewed-by: Uli Schlachter -Reviewed-by: Gatis Paeglis ---- - src/plugins/platforms/xcb/qxcbscreen.cpp | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp -index 9f19841..01e7846 100644 ---- a/src/plugins/platforms/xcb/qxcbscreen.cpp -+++ b/src/plugins/platforms/xcb/qxcbscreen.cpp -@@ -106,6 +106,11 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, xcb_screen_t *scr, - qDebug(" root ID........: %x", screen()->root); - #endif - -+ QScopedPointer rootAttribs( -+ xcb_get_window_attributes_reply(xcb_connection(), -+ xcb_get_window_attributes_unchecked(xcb_connection(), screen()->root), NULL)); -+ const quint32 existingEventMask = rootAttribs.isNull() ? 0 : rootAttribs->your_event_mask; -+ - const quint32 mask = XCB_CW_EVENT_MASK; - const quint32 values[] = { - // XCB_CW_EVENT_MASK -@@ -113,6 +118,7 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, xcb_screen_t *scr, - | XCB_EVENT_MASK_LEAVE_WINDOW - | XCB_EVENT_MASK_PROPERTY_CHANGE - | XCB_EVENT_MASK_STRUCTURE_NOTIFY // for the "MANAGER" atom (system tray notification). -+ | existingEventMask // don't overwrite the event mask on the root window - }; - - xcb_change_window_attributes(xcb_connection(), screen()->root, mask, values); --- -1.9.3 - diff --git a/0002-Properly-check-which-OpenGL-features-are-supported.patch b/0002-Properly-check-which-OpenGL-features-are-supported.patch deleted file mode 100644 index d8b0c5a..0000000 --- a/0002-Properly-check-which-OpenGL-features-are-supported.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 473ed1c1aa67ceb345b20d13c408ed8bd65a9e41 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= -Date: Wed, 18 Jun 2014 13:03:15 +0200 -Subject: [PATCH 1/1] Properly check which OpenGL features are supported - -QOpenGLShaderProgram::hasOpenGLShaderPrograms tests whether -QOpenGLFunctions::Shaders is provided for the given context. As the -initialization code assumed OpenGL 2 this always was true. But -unfortunately we still cannot assume that OpenGL 2 is universally -supported. E.g. indirect rendering (no matter how bad that idea is) -does not support OpenGL 2 on all hardware and the Shader related -extensions are not available. - -This change makes sure that only when OpenGL 2 is available the -features provided by OpenGL 2 are enabled. If OpenGL 2 is not -available the extensions are tested. The checks are slightly -reordered to not do the extension tests at all if OpenGL 2 is -available. - -Task-number: QTBUG-39730 -Change-Id: Ic775163e0dcc519925b1287f3c4ca5e8ebf101d5 -Reviewed-by: Laszlo Agocs ---- - src/gui/opengl/qopenglfunctions.cpp | 78 +++++++++++++++++++------------------ - 1 file changed, 40 insertions(+), 38 deletions(-) - -diff --git a/src/gui/opengl/qopenglfunctions.cpp b/src/gui/opengl/qopenglfunctions.cpp -index a0d1775..bc4a714 100644 ---- a/src/gui/opengl/qopenglfunctions.cpp -+++ b/src/gui/opengl/qopenglfunctions.cpp -@@ -283,46 +283,48 @@ static int qt_gl_resolve_features() - QSurfaceFormat format = QOpenGLContext::currentContext()->format(); - QOpenGLExtensionMatcher extensions; - -- // Recognize features by extension name. -- if (extensions.match("GL_ARB_multitexture")) -- features |= QOpenGLFunctions::Multitexture; -- if (extensions.match("GL_ARB_shader_objects")) -- features |= QOpenGLFunctions::Shaders; -- if (extensions.match("GL_EXT_framebuffer_object") || -- extensions.match("GL_ARB_framebuffer_object")) -- features |= QOpenGLFunctions::Framebuffers; -- if (extensions.match("GL_EXT_blend_color")) -- features |= QOpenGLFunctions::BlendColor; -- if (extensions.match("GL_EXT_blend_equation_separate")) -- features |= QOpenGLFunctions::BlendEquationSeparate; -- if (extensions.match("GL_EXT_blend_func_separate")) -- features |= QOpenGLFunctions::BlendFuncSeparate; -- if (extensions.match("GL_EXT_blend_subtract")) -- features |= QOpenGLFunctions::BlendSubtract; -- if (extensions.match("GL_ARB_texture_compression")) -- features |= QOpenGLFunctions::CompressedTextures; -- if (extensions.match("GL_ARB_multisample")) -- features |= QOpenGLFunctions::Multisample; -- if (extensions.match("GL_ARB_texture_non_power_of_two")) -- features |= QOpenGLFunctions::NPOTTextures | -- QOpenGLFunctions::NPOTTextureRepeat; -- -- // assume version 2.0 or higher -- features |= QOpenGLFunctions::BlendColor | -- QOpenGLFunctions::BlendEquation | -- QOpenGLFunctions::Multitexture | -- QOpenGLFunctions::CompressedTextures | -- QOpenGLFunctions::Multisample | -- QOpenGLFunctions::BlendFuncSeparate | -- QOpenGLFunctions::Buffers | -- QOpenGLFunctions::Shaders | -- QOpenGLFunctions::StencilSeparate | -- QOpenGLFunctions::BlendEquationSeparate | -- QOpenGLFunctions::NPOTTextures | -- QOpenGLFunctions::NPOTTextureRepeat; -- - if (format.majorVersion() >= 3) - features |= QOpenGLFunctions::Framebuffers; -+ else if (extensions.match("GL_EXT_framebuffer_object") || -+ extensions.match("GL_ARB_framebuffer_object")) -+ features |= QOpenGLFunctions::Framebuffers; -+ -+ if (format.majorVersion() >= 2) { -+ features |= QOpenGLFunctions::BlendColor | -+ QOpenGLFunctions::BlendEquation | -+ QOpenGLFunctions::BlendSubtract | -+ QOpenGLFunctions::Multitexture | -+ QOpenGLFunctions::CompressedTextures | -+ QOpenGLFunctions::Multisample | -+ QOpenGLFunctions::BlendFuncSeparate | -+ QOpenGLFunctions::Buffers | -+ QOpenGLFunctions::Shaders | -+ QOpenGLFunctions::StencilSeparate | -+ QOpenGLFunctions::BlendEquationSeparate | -+ QOpenGLFunctions::NPOTTextures | -+ QOpenGLFunctions::NPOTTextureRepeat; -+ } else { -+ // Recognize features by extension name. -+ if (extensions.match("GL_ARB_multitexture")) -+ features |= QOpenGLFunctions::Multitexture; -+ if (extensions.match("GL_ARB_shader_objects")) -+ features |= QOpenGLFunctions::Shaders; -+ if (extensions.match("GL_EXT_blend_color")) -+ features |= QOpenGLFunctions::BlendColor; -+ if (extensions.match("GL_EXT_blend_equation_separate")) -+ features |= QOpenGLFunctions::BlendEquationSeparate; -+ if (extensions.match("GL_EXT_blend_subtract")) -+ features |= QOpenGLFunctions::BlendSubtract; -+ if (extensions.match("GL_EXT_blend_func_separate")) -+ features |= QOpenGLFunctions::BlendFuncSeparate; -+ if (extensions.match("GL_ARB_texture_compression")) -+ features |= QOpenGLFunctions::CompressedTextures; -+ if (extensions.match("GL_ARB_multisample")) -+ features |= QOpenGLFunctions::Multisample; -+ if (extensions.match("GL_ARB_texture_non_power_of_two")) -+ features |= QOpenGLFunctions::NPOTTextures | -+ QOpenGLFunctions::NPOTTextureRepeat; -+ } - - const QPair version = format.version(); - if (version < qMakePair(3, 0) --- -1.9.3 - diff --git a/0003-Fix-data-race-on-QLoggingCategory-when-using-qDebug-.patch b/0003-Fix-data-race-on-QLoggingCategory-when-using-qDebug-.patch deleted file mode 100644 index c975fca..0000000 --- a/0003-Fix-data-race-on-QLoggingCategory-when-using-qDebug-.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 884b38157689a893ace0a4c793fab921167abb2c Mon Sep 17 00:00:00 2001 -From: David Faure -Date: Sun, 8 Jun 2014 21:46:24 +0200 -Subject: [PATCH 1/1] Fix data race on QLoggingCategory when using qDebug from - multiple threads - -setEnabled() would race with isEnabled()/isDebugEnabled()/etc. - -Change-Id: I2004cba81d5417a634b97f5c2f98d3a4ab71770d -Reviewed-by: David Faure ---- - src/corelib/arch/qatomic_bootstrap.h | 4 ++- - src/corelib/io/qloggingcategory.cpp | 36 ++++++++++++++++++-------- - src/corelib/io/qloggingcategory.h | 35 +++++++++++++++++++------ - tests/auto/corelib/io/qdebug/qdebug.pro | 2 +- - tests/auto/corelib/io/qdebug/tst_qdebug.cpp | 40 +++++++++++++++++++++++++++++ - 5 files changed, 97 insertions(+), 20 deletions(-) - -diff --git a/src/corelib/arch/qatomic_bootstrap.h b/src/corelib/arch/qatomic_bootstrap.h -index 7f17387..0d6843a 100644 ---- a/src/corelib/arch/qatomic_bootstrap.h -+++ b/src/corelib/arch/qatomic_bootstrap.h -@@ -67,8 +67,10 @@ template struct QAtomicOps: QGenericAtomicOps > - return --_q_value != 0; - } - -- static bool testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) Q_DECL_NOTHROW -+ static bool testAndSetRelaxed(T &_q_value, T expectedValue, T newValue, T *currentValue = 0) Q_DECL_NOTHROW - { -+ if (currentValue) -+ *currentValue = _q_value; - if (_q_value == expectedValue) { - _q_value = newValue; - return true; -diff --git a/src/corelib/io/qloggingcategory.cpp b/src/corelib/io/qloggingcategory.cpp -index 518052e..45fab11 100644 ---- a/src/corelib/io/qloggingcategory.cpp -+++ b/src/corelib/io/qloggingcategory.cpp -@@ -50,6 +50,18 @@ const char qtDefaultCategoryName[] = "default"; - Q_GLOBAL_STATIC_WITH_ARGS(QLoggingCategory, qtDefaultCategory, - (qtDefaultCategoryName)) - -+#ifndef Q_ATOMIC_INT8_IS_SUPPORTED -+static void setBoolLane(QBasicAtomicInt *atomic, bool enable, int shift) -+{ -+ const int bit = 1 << shift; -+ -+ if (enable) -+ atomic->fetchAndOrRelaxed(bit); -+ else -+ atomic->fetchAndAndRelaxed(~bit); -+} -+#endif -+ - /*! - \class QLoggingCategory - \inmodule QtCore -@@ -171,13 +183,11 @@ Q_GLOBAL_STATIC_WITH_ARGS(QLoggingCategory, qtDefaultCategory, - */ - QLoggingCategory::QLoggingCategory(const char *category) - : d(0), -- name(0), -- enabledDebug(true), -- enabledWarning(true), -- enabledCritical(true) -+ name(0) - { - Q_UNUSED(d); - Q_UNUSED(placeholder); -+ enabled.store(0x01010101); // enabledDebug = enabledWarning = enabledCritical = true; - - const bool isDefaultCategory - = (category == 0) || (strcmp(category, qtDefaultCategoryName) == 0); -@@ -249,9 +259,9 @@ QLoggingCategory::~QLoggingCategory() - bool QLoggingCategory::isEnabled(QtMsgType msgtype) const - { - switch (msgtype) { -- case QtDebugMsg: return enabledDebug; -- case QtWarningMsg: return enabledWarning; -- case QtCriticalMsg: return enabledCritical; -+ case QtDebugMsg: return isDebugEnabled(); -+ case QtWarningMsg: return isWarningEnabled(); -+ case QtCriticalMsg: return isCriticalEnabled(); - case QtFatalMsg: return true; - } - return false; -@@ -270,9 +280,15 @@ bool QLoggingCategory::isEnabled(QtMsgType msgtype) const - void QLoggingCategory::setEnabled(QtMsgType type, bool enable) - { - switch (type) { -- case QtDebugMsg: enabledDebug = enable; break; -- case QtWarningMsg: enabledWarning = enable; break; -- case QtCriticalMsg: enabledCritical = enable; break; -+#ifdef Q_ATOMIC_INT8_IS_SUPPORTED -+ case QtDebugMsg: bools.enabledDebug.store(enable); break; -+ case QtWarningMsg: bools.enabledWarning.store(enable); break; -+ case QtCriticalMsg: bools.enabledCritical.store(enable); break; -+#else -+ case QtDebugMsg: setBoolLane(&enabled, enable, DebugShift); break; -+ case QtWarningMsg: setBoolLane(&enabled, enable, WarningShift); break; -+ case QtCriticalMsg: setBoolLane(&enabled, enable, CriticalShift); break; -+#endif - case QtFatalMsg: break; - } - } -diff --git a/src/corelib/io/qloggingcategory.h b/src/corelib/io/qloggingcategory.h -index 4aec8e6..573af21 100644 ---- a/src/corelib/io/qloggingcategory.h -+++ b/src/corelib/io/qloggingcategory.h -@@ -57,10 +57,15 @@ public: - bool isEnabled(QtMsgType type) const; - void setEnabled(QtMsgType type, bool enable); - -- bool isDebugEnabled() const { return enabledDebug; } -- bool isWarningEnabled() const { return enabledWarning; } -- bool isCriticalEnabled() const { return enabledCritical; } -- -+#ifdef Q_ATOMIC_INT8_IS_SUPPORTED -+ bool isDebugEnabled() const { return bools.enabledDebug.load(); } -+ bool isWarningEnabled() const { return bools.enabledWarning.load(); } -+ bool isCriticalEnabled() const { return bools.enabledCritical.load(); } -+#else -+ bool isDebugEnabled() const { return enabled.load() >> DebugShift & 1; } -+ bool isWarningEnabled() const { return enabled.load() >> WarningShift & 1; } -+ bool isCriticalEnabled() const { return enabled.load() >> CriticalShift & 1; } -+#endif - const char *categoryName() const { return name; } - - // allows usage of both factory method and variable in qCX macros -@@ -78,10 +83,24 @@ private: - void *d; // reserved for future use - const char *name; - -- bool enabledDebug; -- bool enabledWarning; -- bool enabledCritical; -- bool placeholder[5]; // reserve for future use -+#ifdef Q_BIG_ENDIAN -+ enum { DebugShift = 0, WarningShift = 8, CriticalShift = 16 }; -+#else -+ enum { DebugShift = 24, WarningShift = 16, CriticalShift = 8 }; -+#endif -+ -+ struct AtomicBools { -+#ifdef Q_ATOMIC_INT8_IS_SUPPORTED -+ QBasicAtomicInteger enabledDebug; -+ QBasicAtomicInteger enabledWarning; -+ QBasicAtomicInteger enabledCritical; -+#endif -+ }; -+ union { -+ AtomicBools bools; -+ QBasicAtomicInt enabled; -+ }; -+ bool placeholder[4]; // reserve for future use - }; - - #define Q_DECLARE_LOGGING_CATEGORY(name) \ -diff --git a/tests/auto/corelib/io/qdebug/qdebug.pro b/tests/auto/corelib/io/qdebug/qdebug.pro -index 820c17f..5e902bb 100644 ---- a/tests/auto/corelib/io/qdebug/qdebug.pro -+++ b/tests/auto/corelib/io/qdebug/qdebug.pro -@@ -1,5 +1,5 @@ - CONFIG += testcase parallel_test - TARGET = tst_qdebug --QT = core testlib -+QT = core testlib concurrent - SOURCES = tst_qdebug.cpp - DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 -diff --git a/tests/auto/corelib/io/qdebug/tst_qdebug.cpp b/tests/auto/corelib/io/qdebug/tst_qdebug.cpp -index 80144db..8fd830a 100644 ---- a/tests/auto/corelib/io/qdebug/tst_qdebug.cpp -+++ b/tests/auto/corelib/io/qdebug/tst_qdebug.cpp -@@ -44,6 +44,9 @@ - #include - #include - -+#include -+#include -+ - class tst_QDebug: public QObject - { - Q_OBJECT -@@ -59,6 +62,7 @@ private slots: - void qDebugQLatin1String() const; - void textStreamModifiers() const; - void defaultMessagehandler() const; -+ void threadSafety() const; - }; - - void tst_QDebug::assignment() const -@@ -305,5 +309,41 @@ void tst_QDebug::defaultMessagehandler() const - QVERIFY(same); - } - -+QMutex s_mutex; -+QStringList s_messages; -+QSemaphore s_sema; -+ -+static void threadSafeMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) -+{ -+ QMutexLocker lock(&s_mutex); -+ s_messages.append(msg); -+ Q_UNUSED(type); -+ Q_UNUSED(context); -+} -+ -+static void doDebug() // called in each thread -+{ -+ s_sema.acquire(); -+ qDebug() << "doDebug"; -+} -+ -+void tst_QDebug::threadSafety() const -+{ -+ MessageHandlerSetter mhs(threadSafeMessageHandler); -+ const int numThreads = 10; -+ QThreadPool::globalInstance()->setMaxThreadCount(numThreads); -+ QFutureSynchronizer sync; -+ for (int i = 0; i < numThreads; ++i) { -+ sync.addFuture(QtConcurrent::run(&doDebug)); -+ } -+ s_sema.release(numThreads); -+ sync.waitForFinished(); -+ QMutexLocker lock(&s_mutex); -+ QCOMPARE(s_messages.count(), numThreads); -+ for (int i = 0; i < numThreads; ++i) { -+ QCOMPARE(s_messages.at(i), QStringLiteral("doDebug")); -+ } -+} -+ - QTEST_MAIN(tst_QDebug); - #include "tst_qdebug.moc" --- -1.9.3 - diff --git a/0004-QDBus-fix-data-race-on-isDebugging-bool.patch b/0004-QDBus-fix-data-race-on-isDebugging-bool.patch deleted file mode 100644 index faa5734..0000000 --- a/0004-QDBus-fix-data-race-on-isDebugging-bool.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7a4dcbaabf037a6913a5662ebb74cc47e04673b9 Mon Sep 17 00:00:00 2001 -From: David Faure -Date: Sun, 8 Jun 2014 15:39:00 +0200 -Subject: [PATCH 1/1] QDBus: fix data race on isDebugging bool - -Change-Id: Id0b8bf8dac570abfc6c8768bd4264650ae0c199b -Reviewed-by: Thiago Macieira ---- - src/dbus/qdbusintegrator.cpp | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp -index 1fef6d4..260c188 100644 ---- a/src/dbus/qdbusintegrator.cpp -+++ b/src/dbus/qdbusintegrator.cpp -@@ -73,8 +73,8 @@ - - QT_BEGIN_NAMESPACE - --static bool isDebugging; --#define qDBusDebug if (!::isDebugging); else qDebug -+static QBasicAtomicInt isDebugging = Q_BASIC_ATOMIC_INITIALIZER(-1); -+#define qDBusDebug if (::isDebugging == 0); else qDebug - - Q_GLOBAL_STATIC_WITH_ARGS(const QString, orgFreedesktopDBusString, (QLatin1String(DBUS_SERVICE_DBUS))) - -@@ -1022,13 +1022,12 @@ QDBusConnectionPrivate::QDBusConnectionPrivate(QObject *p) - anonymousAuthenticationAllowed(false) - { - static const bool threads = q_dbus_threads_init_default(); -- static const int debugging = qgetenv("QDBUS_DEBUG").toInt(); -- ::isDebugging = debugging; -+ if (::isDebugging == -1) -+ ::isDebugging = qgetenv("QDBUS_DEBUG").toInt(); - Q_UNUSED(threads) -- Q_UNUSED(debugging) - - #ifdef QDBUS_THREAD_DEBUG -- if (debugging > 1) -+ if (::isDebugging > 1) - qdbusThreadDebug = qdbusDefaultThreadDebug; - #endif - --- -1.9.3 - diff --git a/0005-Translate-Super-Hyper-keys-to-MetaModifier.patch b/0005-Translate-Super-Hyper-keys-to-MetaModifier.patch deleted file mode 100644 index 2c9046c..0000000 --- a/0005-Translate-Super-Hyper-keys-to-MetaModifier.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 51d6df1d18322c630f79567ed22de3718436d78d Mon Sep 17 00:00:00 2001 -From: Gatis Paeglis -Date: Tue, 17 Jun 2014 11:41:23 +0200 -Subject: [PATCH 1/1] Translate Super/Hyper keys to MetaModifier -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This is how it was done in Qt4. If users are interested -in an actual X11 keysym they can use QKeyEvent::nativeVirtualKey(). - -Change-Id: I710664e48c5db1633a357aa0a5d238f3453103ab -Task-number: QTBUG-38428 -Reviewed-by: Christian Stenger -Reviewed-by: Lars Knoll -Reviewed-by: Sebastian Kügler -Reviewed-by: Shawn Rutledge ---- - src/plugins/platforms/xcb/qxcbkeyboard.cpp | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/src/plugins/platforms/xcb/qxcbkeyboard.cpp b/src/plugins/platforms/xcb/qxcbkeyboard.cpp -index 69601f4..4c84b19 100644 ---- a/src/plugins/platforms/xcb/qxcbkeyboard.cpp -+++ b/src/plugins/platforms/xcb/qxcbkeyboard.cpp -@@ -929,6 +929,15 @@ int QXcbKeyboard::keysymToQtKey(xcb_keysym_t key) const - i += 2; - } - -+ if (rmod_masks.meta) { -+ // translate Super/Hyper keys to Meta if we're using them as the MetaModifier -+ if (rmod_masks.meta == rmod_masks.super && (code == Qt::Key_Super_L || code == Qt::Key_Super_R)) { -+ code = Qt::Key_Meta; -+ } else if (rmod_masks.meta == rmod_masks.hyper && (code == Qt::Key_Hyper_L || code == Qt::Key_Hyper_R)) { -+ code = Qt::Key_Meta; -+ } -+ } -+ - return code; - } - --- -1.9.3 - diff --git a/libqt5-avoid-crash-during-querying-device.patch b/libqt5-avoid-crash-during-querying-device.patch deleted file mode 100644 index ae50d86..0000000 --- a/libqt5-avoid-crash-during-querying-device.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f1bce3bc17ebb99b1512b07499988538465c78a2 Mon Sep 17 00:00:00 2001 -From: Allan Sandfeld Jensen -Date: Thu, 21 Aug 2014 15:33:09 +0200 -Subject: [PATCH] Avoid crash if querying device that has gone away - -A device removed very fast after being inserted might disappear while -we are still seting it up. We must therefore check if we indeed still -get a matching device - -Task-number: QTBUG-40820 -Change-Id: I4372fb1932264e5799f37cea0d016795e28ebed6 -Reviewed-by: Shawn Rutledge ---- - src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- qtbase-opensource-src-5.3.1.orig/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -+++ qtbase-opensource-src-5.3.1/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -@@ -328,10 +328,12 @@ XInput2DeviceData *QXcbConnection::devic - { - XInput2DeviceData *dev = m_touchDevices[id]; - if (!dev) { -- int unused = 0; -+ int nrDevices = 0; - QTouchDevice::Capabilities caps = 0; - dev = new XInput2DeviceData; -- dev->xiDeviceInfo = XIQueryDevice(static_cast(m_xlib_display), id, &unused); -+ dev->xiDeviceInfo = XIQueryDevice(static_cast(m_xlib_display), id, &nrDevices); -+ if (nrDevices <= 0) -+ return 0; - int type = -1; - int maxTouchPoints = 1; - bool hasRelativeCoords = false; diff --git a/libqt5-fix-leak-with-touch-devices-in-xcb.patch b/libqt5-fix-leak-with-touch-devices-in-xcb.patch deleted file mode 100644 index 9e72e1b..0000000 --- a/libqt5-fix-leak-with-touch-devices-in-xcb.patch +++ /dev/null @@ -1,39 +0,0 @@ -From e98c461d43ea07c73898c93debe9285029ba0416 Mon Sep 17 00:00:00 2001 -From: Joni Poikelin -Date: Thu, 12 Jun 2014 10:28:23 +0300 -Subject: [PATCH] XCB: Fix leak with touch devices - -Task-number: QTBUG-39596 -Change-Id: I4225d5a1ab4939280640b35d30c283f056a56519 -Reviewed-by: Laszlo Agocs ---- - src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -index c296618..a574dca 100644 ---- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -@@ -228,6 +228,11 @@ void QXcbConnection::xi2SetupDevices() - - void QXcbConnection::finalizeXInput2() - { -+ foreach (XInput2DeviceData *dev, m_touchDevices) { -+ if (dev->xiDeviceInfo) -+ XIFreeDeviceInfo(dev->xiDeviceInfo); -+ delete dev; -+ } - } - - void QXcbConnection::xi2Select(xcb_window_t window) -@@ -393,6 +398,7 @@ XInput2DeviceData *QXcbConnection::deviceForId(int id) - m_touchDevices[id] = dev; - } else { - m_touchDevices.remove(id); -+ XIFreeDeviceInfo(dev->xiDeviceInfo); - delete dev; - dev = 0; - } --- -1.8.4.5 - diff --git a/libqt5-listen-to-touch-events-on-the-master-device.patch b/libqt5-listen-to-touch-events-on-the-master-device.patch deleted file mode 100644 index e7a486f..0000000 --- a/libqt5-listen-to-touch-events-on-the-master-device.patch +++ /dev/null @@ -1,128 +0,0 @@ -From 19d289ab1b5bde3e136765e5432b5c7d004df3a4 Mon Sep 17 00:00:00 2001 -From: Maarten Lankhorst -Date: Tue, 20 May 2014 09:57:39 +0200 -Subject: [PATCH] Listen to touch events on the master device instead of slave. - -Listening to touch events on the master prevents pointer emulation -events from being generated, alleviating the need to grab. - -Grabbing on the slave device is buggy, and breaks pointer emulation -on all current servers that support XInput 2.2 due to a bug in the -server, and will also grab unwanted touch events. - -For reference, see https://bugs.freedesktop.org/show_bug.cgi?id=78345 - -Reverts 2c65b78b400ec27e6e559829b9a970dca2df6669. The idea of -enabling each touchscreen separately was introduced in -4dbf574b7acb7ae8f852219700afa95f8d568f0e; that aspect is also -reverted. - -Change-Id: I30d36397aa4ff2fb7a8ad2bbb94c2a13abd472b4 -Task-number: QTBUG-38625 -Reviewed-by: Shawn Rutledge ---- - src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 49 +++++++----------------- - 1 file changed, 13 insertions(+), 36 deletions(-) - -diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -index a574dca..cf809b3 100644 ---- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp -@@ -251,14 +251,13 @@ void QXcbConnection::xi2Select(xcb_window_t window) - XIEventMask mask; - mask.mask_len = sizeof(bitMask); - mask.mask = xiBitMask; -- // Enable each touchscreen -- foreach (XInput2DeviceData *dev, m_touchDevices) { -- mask.deviceid = dev->xiDeviceInfo->deviceid; -+ if (!m_touchDevices.isEmpty()) { -+ mask.deviceid = XIAllMasterDevices; - Status result = XISelectEvents(xDisplay, window, &mask, 1); -- // If we have XInput >= 2.2 and successfully enable a touchscreen, then -- // it will provide touch only. In most other cases, there will be -- // emulated mouse events from the driver. If not, then Qt must do its -- // own mouse emulation to enable interaction with mouse-oriented QWidgets. -+ // If we select for touch events on the master pointer, XInput2 -+ // will not synthesize mouse events. This means Qt must do it, -+ // which is also preferable, since Qt can control better when -+ // to do so. - if (m_xi2Minor >= 2 && result == Success) - has_touch_without_mouse_emulation = true; - } -@@ -272,10 +271,10 @@ void QXcbConnection::xi2Select(xcb_window_t window) - // similar handlers useless and we have no intention to infect - // all the pure xcb code with Xlib-based XI2. - if (!m_tabletData.isEmpty()) { -- unsigned int tabletBitMask = bitMask; -+ unsigned int tabletBitMask; - unsigned char *xiTabletBitMask = reinterpret_cast(&tabletBitMask); - QVector xiEventMask(m_tabletData.count()); -- tabletBitMask |= XI_ButtonPressMask; -+ tabletBitMask = XI_ButtonPressMask; - tabletBitMask |= XI_ButtonReleaseMask; - tabletBitMask |= XI_MotionMask; - tabletBitMask |= XI_PropertyEventMask; -@@ -294,24 +293,18 @@ void QXcbConnection::xi2Select(xcb_window_t window) - // Enable each scroll device - if (!m_scrollingDevices.isEmpty()) { - QVector xiEventMask(m_scrollingDevices.size()); -- unsigned int scrollBitMask = 0; -+ unsigned int scrollBitMask; - unsigned char *xiScrollBitMask = reinterpret_cast(&scrollBitMask); -+ - scrollBitMask = XI_MotionMask; - scrollBitMask |= XI_ButtonReleaseMask; -- bitMask |= XI_MotionMask; -- bitMask |= XI_ButtonReleaseMask; - int i=0; - Q_FOREACH (const ScrollingDevice& scrollingDevice, m_scrollingDevices) { - if (tabletDevices.contains(scrollingDevice.deviceId)) - continue; // All necessary events are already captured. - xiEventMask[i].deviceid = scrollingDevice.deviceId; -- if (m_touchDevices.contains(scrollingDevice.deviceId)) { -- xiEventMask[i].mask_len = sizeof(bitMask); -- xiEventMask[i].mask = xiBitMask; -- } else { -- xiEventMask[i].mask_len = sizeof(scrollBitMask); -- xiEventMask[i].mask = xiScrollBitMask; -- } -+ xiEventMask[i].mask_len = sizeof(scrollBitMask); -+ xiEventMask[i].mask = xiScrollBitMask; - i++; - } - XISelectEvents(xDisplay, window, xiEventMask.data(), i); -@@ -458,7 +451,7 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event) - fixed1616ToReal(xiDeviceEvent->root_x), fixed1616ToReal(xiDeviceEvent->root_y) ); - - if (QXcbWindow *platformWindow = platformWindowFromId(xiDeviceEvent->event)) { -- XInput2DeviceData *dev = deviceForId(xiEvent->deviceid); -+ XInput2DeviceData *dev = deviceForId(xiDeviceEvent->sourceid); - Q_ASSERT(dev); - const bool firstTouch = m_touchPoints.isEmpty(); - if (xiEvent->evtype == XI_TouchBegin) { -@@ -563,22 +556,6 @@ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event) - qDebug() << " touchpoint " << touchPoint.id << " state " << touchPoint.state << " pos norm " << touchPoint.normalPosition << - " area " << touchPoint.area << " pressure " << touchPoint.pressure; - QWindowSystemInterface::handleTouchEvent(platformWindow->window(), xiEvent->time, dev->qtTouchDevice, m_touchPoints.values()); -- if (has_touch_without_mouse_emulation) { -- // We need to grab the touch event to prevent mouse emulation. -- if (xiEvent->evtype == XI_TouchBegin) { -- XIEventMask xieventmask; -- unsigned int bitMask = 0; -- unsigned char *xiBitMask = reinterpret_cast(&bitMask); -- xieventmask.deviceid = xiEvent->deviceid; -- xieventmask.mask = xiBitMask; -- xieventmask.mask_len = sizeof(bitMask); -- bitMask |= XI_TouchBeginMask; -- bitMask |= XI_TouchUpdateMask; -- bitMask |= XI_TouchEndMask; -- XIGrabDevice(static_cast(m_xlib_display), xiEvent->deviceid, platformWindow->winId(), xiEvent->time, None, GrabModeAsync, GrabModeAsync, true, &xieventmask); -- } else if (xiEvent->evtype == XI_TouchEnd) -- XIUngrabDevice(static_cast(m_xlib_display), xiEvent->deviceid, xiEvent->time); -- } - if (touchPoint.state == Qt::TouchPointReleased) - // If a touchpoint was released, we can forget it, because the ID won't be reused. - m_touchPoints.remove(touchPoint.id); --- -1.8.4.5 - diff --git a/libqt5-qtbase.changes b/libqt5-qtbase.changes index a68adbe..414ff98 100644 --- a/libqt5-qtbase.changes +++ b/libqt5-qtbase.changes @@ -1,3 +1,245 @@ +------------------------------------------------------------------- +Thu Sep 4 20:37:34 UTC 2014 - hrvoje.senjan@gmail.com + +- Update to 5.3.2~git20140904 (r05670f5): + * Tip of the bugfix 5.3.2 branch: + * Recreate child windows when changing screens + * QCoreTextFontDatabase: Remove number type asserts. + * QGLXContext survives screen removal + * CoreWLan: terminate scan thread in QCoreWlanEngine destructor + * Also print the class name in the QObject::killTimer error msg + * Initialize textureId in platform backing store + * Doc: corrected autolink errors corelib io + * Avoid crash if querying device that has gone away + * Doc: corrected autolink errors Qjsonvalue + * Network: Fix NTLM (SSPI) with HTTP and HTTPS proxies + * remove always ask option. + * Fix handling QT_IM_MODULE=none + * xcb: use keyboard event source window to determine + auto-repeat valuen + * Fix invalid memcpy(dst, src) calls where dst == src + * Fix several regressions in font selection + * Detect wrongly labelled wheel buttons + * Make QWindowContainer handle drag'n'drop + * Resize correctly on orientation change. + * Use correct size in fullscreen mode + * Properly null-terminate ifreq::irf_name + * fingerpaint example: be sensitive to pressure only + when supported + * Fix a memory leak in QFseventsFileSystemWatcherEngine + * Do not set QMAKE_{INC,LIB}DIR_{OPENGL,X11} in the + freebsd mkspecs. + * refactor disconnectFromFtp to remove cached entries + when necessary + * Remove reference to gdb_dwarf_index from the + freebsd-clang mkspec. + * Fix mistake in function extraTryFontsForFamily + * Fix rendering of fonts matched based on stretch + * Fix x86/32-bit build when using an old version of gcc + * Fix selection of fonts based on styleName + * QFusionStyle paints sliders outside of clip + * Set iMX device specific compiler flags to QMAKE_CFLAGS + * Fix QPainter::drawPolyline() painting errors with + cosmetic pen + * Let QImage::mirrored() retain dots-per-meter settings + * Make sure we don't cache old file sizes prior to new writes + * Correct the SYNC hint for the release barrier + * Fix QT_NO_REGULAREXPRESSION build + * Fix QT_NO_ANIMATION build + * Fix build with QT_NO_MDIAREA + * Show the correct cursor for QLineEdit's side buttons. + * Fix disconnect()ing from signals declared in a base class + * Fix rendering alpha-blended text which needs to be + clipped at the top. + * Fix build due to missing include when using a minimal config. + * Fix build with QT_NO_DRAGANDDROP + * Font Database: Add support for private, system UI + font families + * Apply upstream patch r1498 to our PCRE copy + * Apply upstream patch r1495 to our PCRE copy + * Initialize member. + * Document missing QLatin1String methods + * network tests: add manual test for auth / proxy auth + * Uncomment some tests which accidently got commented + * Both HiQualAA and normal AA should mean + antialiasing in rasterengine. + * Check if Start/EndPage returns non-positive value + when error checking + * GTK file dialog: pre-fill the filename if given to a + Save dialog + * QFileDialog docs: remove misleading sentence about + static functions + * Doc: Placed Qt OpenGL class convention in code block. + * Undo: Fix state entry bug for parallel state groups + * Do not add QOffscreenSurface windows to the global list + * tst_QHash: check which of several equal keys is inserted + * OpenGL: destroy QGLContext allocated by + QGLContext::fromOpenGLContext + * tst_QSet: check which of several equal elements is inserted + * fix paths in installed qtmain.prl + * add /ENTRY:main only for target builds + * avoid that CROSS_COMPILE affects host builds + * Add missing power button keycode to keymap + * Android: export ANDROID_SDK_BUILD_TOOLS_REVISION. + * cocoa: Fix compiler warnings about unused functions. + * Propagate swapInterval to QGLFormat + * Fix double clicks in eglfs + * Work around ICC bug in local static symbols for + Q_GLOBAL_STATIC + * QCoreTextFontDatabase: Fix font weight value when + populating a family + * Don't convert signed to unsigned when we need all 32bit + * Fix compilation if EC is disabled in OpenSSL + * Fix warning message when re-setting text on tooltip + * Improve dbus cross compilation + * Fix buffer overrun error with some proxy servers + * QNAM: Fix CPU load for limited upload QIODevice + * qmake: Document the "aux" template type. + * Use the stateless UTF-8 encoder in QStringRef::toUtf8 + * Doc: corrected autolink errors in qnamespace.qdoc + * QPixmap::fromImage() should detach when changing + QImage format + * generate QGL header file from qgl.h + * Ensure transient parents are top level widgets. + * Added stream version into network cache file format + * make QtWidgets claim style plugins + * CMake: Don't check the existence of GL files in the + Qt5Gui package. + * QSplitter: Exclude top level widgets from child + event handling. + * Doc: Hide QTextInlineObject constructor from + the documentation + * Work around ICC bug in brace initializations + containing constexpr + * Doc: edited qtxml.qdocconf + * xcb: QTabletEvents and proximity events correctly + identify the tool + * Fixed wrong function name in a file snippet + * XCB: Enable loading of the Qt::DragLinkCursor + * Fix fallbacks for adapted common script + * Fix fallbacks for adapted common script + * QSslCertificate: blacklist NIC certificates from India + * Doc: moved saxbookmarks example files + * tst_qdir: Move QFINDTESTDATA() from init() to constructor. + * Doc: moved streambookmarks example files + * Don't assert when HB-old is unable to deal with surrogates + * REG: Fix nbsp in QTextLayout + * Support getting test data from qrc + * Document QApplication::cursorFlashTime() can return -1 + * Fix for code snippet in commandlineparser documentation + * Doc: removed trolltech.com from namespace in manual + qdocconf file. + * Fix typo in QGraphicsView documentation. + * Fix QTimer with negative interval in + QWidgetLineControl::setCursorBlinkPeriod + * Attempt to work with Visual Studio in -Za (strict ANSI) mode + * Improve QListWidget documentation. + * Fix debug output of QTouchEvent. + * Doc: fix a link in QAbstractOpenGLFunctions documentation + * Accessibility Linux: Fix crashes when accessing + invalid functions + * move loading of testability driver from QApplication + to QGuiApplication + * QPdf::addImage(): avoid a QImage detach when it's in an + acceptable Format + * Make QDom/QXmlSimpleReader reentrant. + * Move QXmlReaderPrivate to private header. + * Mac: Don't register for Pan Gestures. + * Add opt-out environment variable for @2x images + * Listen to touch events on the master device instead of slave. + * add support for device linux-arm-hisilicon-hix5hd2-g++ + * Make tst_QLocale::macDefaultLocale() more robust + * Fix some tst_qwidget test cases + * xcb: make sure to update window title when it is changed + * Skip unstable autotests in QtBase. + * Empty icons and Cocoa menu items. + * Address Book example: Fix QTableView column sorting + * QOpenGLTexture: fix the feature test for Buffer Textures + * qDebug: fix data race in qt_message_print + * [bcm97425] Fix parameter issue in platformDestroy hook + * Doc: Various \note fixes in Qt namespace documentation. + * Fix QFileInfoGatherer threading issue + * Doc: Fix typo in QScopedValueRollback + * Fix pixel noise in X11 systray icons that are not 22x22 + * Don't compare the target methods for SlotObject connections + * qtoolbar: add missing header on OSX. + * Remove bogus nullptr check for reference + * Support MIPS atomic on pre-MIPS32 architectures + * Enable sparc detection. + * Remove -Wcast-align from QMAKE_CXXFLAGS. + * Create the 64 bits version strings for MIPS, SPARC and S390 + * Add a comment stating QMutex::isRecursive should be made + const in Qt6 + * Fix QMutex documentation saying some function are static + while they are not + * Delete qml_plugin_import.cpp file only during distclean + * WinRT: no read-only paths in QStandardpaths::writableLocation + * Fix compilation on Windows without precompiled headers + * QColorDialog: Do not update custom/standard color cells + while picking. + * Fix -Werror compilation on big-endian + * CMake: Allow modules to specify the location of tests. + * Mark behavior of QFileInfo::absoluteFilePath as undefined in + corner cases + * Translate Super/Hyper keys to MetaModifier + * Fix logging file location docs + * CMake: Report an error if unit tests are not found for + a module. + * Fix QRingBuffer::readPointerAtPosition() + * Make the fetchAndAddRelaxed function a member template + * Doc: qInstallMessageHandler cannot return 0. + * GIF decoding: do not seek() if the image is loaded + over the network + * network internals: do not try to cache a deleted entry + * Fix memory leaks in QFseventsFileSystemWatcherEngine + * Simplify mirroring code and add tests for non-aliged + 1 bit images + * Add that the corner settings are saved/restored + with the state + * Correct grammar of missing Q_OBJECT macro warning. + * Doc: Fix docs for QFontMetrics::height() to match code + * Fix installation of private headers generated + by wayland-scanner + * add buildsystem/qmake changelog + * CMake: Load plugin files unconditionally if present. + * QIcon: Prefer high-quality images of Windows .ico files. + * tst_qicon: Resolve all files using QFINDTESTDATA(). + * Move most of the QLibraryPrivate initialization to + its constructor + * QComboBox: update focus policy when setting a new line edit + * QDBus: fix data race on isDebugging bool + * When filling the path it should use the painter's pen + not the state's + * Fix data race on QLoggingCategory when using qDebug + from multiple threads + * Remove the use of QT_STATIC_CONST in QtSql + * Fix compilation with /Zc:strictStrings + * Correct QImage::fill(uint) on RGBA8888 formats + * XCB: Fix leak with touch devices + * pass a pointer instead of a reference to initFrom() + * Properly check which OpenGL features are supported + * Do not overwrite existing event mask of root window + * Remove the widget from the stylesheet cache before polishing + * QDnsLookup: Fix build with uClibc + * Remove unused define XCB_USE_IBUS. + * Attempt to fix intel compiler build error. + * Use QModelIndex to get the data from underlying model + * QGuiApplication: Document -plugin command line argument. + * Fix compilation in under -no-c++11 mode + * Fix compilation with the Intel compiler on certain systems +- Drop patches merged upstream: + 0001-Do-not-overwrite-existing-event-mask-of-root-window.patch, + 0002-Properly-check-which-OpenGL-features-are-supported.patch, + 0003-Fix-data-race-on-QLoggingCategory-when-using-qDebug-.patch, + 0004-QDBus-fix-data-race-on-isDebugging-bool.patch, + 0005-Translate-Super-Hyper-keys-to-MetaModifier.patch, + libqt5-avoid-crash-during-querying-device.patch, + libqt5-fix-leak-with-touch-devices-in-xcb.patch and + libqt5-listen-to-touch-events-on-the-master-device.patch +- Added protect-geometry-QTBUG-40584.patch, to workaround QTBUG-40584, + so widget geometry is preserved +- Reorder patches + ------------------------------------------------------------------- Fri Aug 29 06:57:03 UTC 2014 - mlin@suse.com diff --git a/libqt5-qtbase.spec b/libqt5-qtbase.spec index 10789e0..d0435fb 100644 --- a/libqt5-qtbase.spec +++ b/libqt5-qtbase.spec @@ -16,65 +16,48 @@ # -%define qt5_snapshot 0 +%define qt5_snapshot 1 %define journald 0 Name: libqt5-qtbase -Version: 5.3.1 +Version: 5.3.2~git20140904 Release: 0 Summary: C++ Program Library, Core Components License: GPL-3.0 or SUSE-LGPL-2.1-with-digia-exception-1.1 Group: System/Libraries Url: http://qt.digia.com %define base_name libqt5 -%define real_version 5.3.1 -%define so_version 5.3.1 -%if %qt5_snapshot -%define tar_version qtbase-%{real_version} -%else +%define real_version 5.3.2 +%define so_version 5.3.2 %define tar_version qtbase-opensource-src-%{real_version} -%endif Source: %{tar_version}.tar.xz # to get mtime of file: Source1: libqt5-qtbase.changes Source2: macros.qt5 Source3: baselibs.conf +# patches 0-1000 are openSUSE and/or non-upstream(able) patches # # PATCH-FIX-UPSTREAM libqt5-libtool-nodate.diff -- for ommiting date/time on build -Patch109: libqt5-libtool-nodate.diff +Patch0: libqt5-libtool-nodate.diff # PATCH-FIX-UPSTREAM qmake-add-usr-include.diff -- explicitly include /usr/include path -Patch131: qmake-add-usr-include.diff +Patch1: qmake-add-usr-include.diff # PATCH-FIX-UPSTREAM use-freetype-default.patch -- allow using lcd-default filter regardless of how freetype2 library has been built (w/ & w/o subpixel) -Patch132: use-freetype-default.patch -# PATCH-FIX-UPSTREAM f1ee10f81ac18789e9a7dc715b464415ba2bc2b8.patch -- prefer QPA implementation in qsystemtrayicon_x11 if available -Patch133: f1ee10f81ac18789e9a7dc715b464415ba2bc2b8.patch -# PATCH-FIX-UPSTREAM libqt5-add-support-for-byte-swapping.patch -- add support for byte swapping(bnc#866709), currently it's at the upstream dev branch -Patch134: libqt5-add-support-for-byte-swapping.patch -# PATCH-FIX-UPSTREAM libqt5-byte-order-byte-is-address0.patch -- the byte order byte is at address 0(bnc#866709), currently it's at the upstream dev branch -Patch135: libqt5-byte-order-byte-is-address0.patch +Patch2: use-freetype-default.patch # PATCH-FIX-SUSE libqt5-Fix-Gujarati-font.patch bnc#878292 fix broken Gujarati font rendering -Patch136: libqt5-Fix-Gujarati-font.patch - -# patches 1000 and above from upstream 5.3 branch # -# PATCH-FIX-UPSTREAM 0001-Do-not-overwrite-existing-event-mask-of-root-window.patch -- QTBUG-39648 -Patch1000: 0001-Do-not-overwrite-existing-event-mask-of-root-window.patch -# PATCH-FIX-UPSTREAM 0002-Properly-check-which-OpenGL-features-are-supported.patch -- QTBUG-39730 -Patch1001: 0002-Properly-check-which-OpenGL-features-are-supported.patch -# PATCH-FIX-UPSTREAM 0003-Fix-data-race-on-QLoggingCategory-when-using-qDebug-.patch -- Fix data race on QLoggingCategory -Patch1002: 0003-Fix-data-race-on-QLoggingCategory-when-using-qDebug-.patch -# PATCH-FIX-UPSTREAM 0004-QDBus-fix-data-race-on-isDebugging-bool.patch -- fix data race on isDebugging bool -Patch1003: 0004-QDBus-fix-data-race-on-isDebugging-bool.patch -# PATCH-FIX-UPSTREAM 0005-Translate-Super-Hyper-keys-to-MetaModifier.patch -- QTBUG-38428 -Patch1004: 0005-Translate-Super-Hyper-keys-to-MetaModifier.patch +Patch3: libqt5-Fix-Gujarati-font.patch +# PATCH-FIX-UPSTREAM protect-geometry-QTBUG-40584.patch -- https://bugreports.qt-project.org/browse/QTBUG-40584 +Patch4: protect-geometry-QTBUG-40584.patch +# patches 1000-2000 and above from upstream 5.3 branch # +# patches 2000-3000 and above from upstream 5.4 branch # +# PATCH-FIX-UPSTREAM f1ee10f81ac18789e9a7dc715b464415ba2bc2b8.patch -- prefer QPA implementation in qsystemtrayicon_x11 if available +Patch2000: f1ee10f81ac18789e9a7dc715b464415ba2bc2b8.patch +# PATCH-FIX-UPSTREAM libqt5-add-support-for-byte-swapping.patch -- add support for byte swapping(bnc#866709), currently it's at the upstream dev branch +Patch2001: libqt5-add-support-for-byte-swapping.patch +# PATCH-FIX-UPSTREAM libqt5-byte-order-byte-is-address0.patch -- the byte order byte is at address 0(bnc#866709), currently it's at the upstream dev branch +Patch2002: libqt5-byte-order-byte-is-address0.patch # PATCH-FIX-UPSTREAM 00010-Replace-the-const-QString-global-static-with-a-QStri.patch -Patch2000: 00010-Replace-the-const-QString-global-static-with-a-QStri.patch +Patch2003: 00010-Replace-the-const-QString-global-static-with-a-QStri.patch # PATCH-FIX-UPSTREAM 00011-Use-correct-signal-name-when-disconnecting.patch -Patch2001: 00011-Use-correct-signal-name-when-disconnecting.patch -# PATCH-FIX-UPSTREAM libqt5-fix-leak-with-touch-devices-in-xcb.patch -- QTBUG-39596 -Patch2002: libqt5-fix-leak-with-touch-devices-in-xcb.patch -# PATCH-FIX-UPSTREAM libqt5-listen-to-touch-events-on-the-master-device.patch -- QTBUG-38625 -Patch2003: libqt5-listen-to-touch-events-on-the-master-device.patch -# PATCH-FIX-UPSTREAM libqt5-avoid-crash-during-querying-device.patch -- QTBUG-40820 -Patch2004: libqt5-avoid-crash-during-querying-device.patch +Patch2004: 00011-Use-correct-signal-name-when-disconnecting.patch BuildRequires: alsa-devel BuildRequires: cups-devel BuildRequires: fdupes @@ -152,23 +135,12 @@ handling. %define libqt5_translationdir %{libqt5_datadir}/translations %prep -%if %qt5_snapshot -%setup -q -n qtbase-%{real_version} -%else %setup -q -n qtbase-opensource-src-%{real_version} -%endif -%patch109 -p1 -%patch131 -p1 -%patch132 -p1 -%patch133 -p1 -%patch134 -p1 -%patch135 -p1 -%patch136 -p1 -%patch1000 -p1 -%patch1001 -p1 -%patch1002 -p1 -%patch1003 -p1 -%patch1004 -p1 +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 %patch2000 -p1 %patch2001 -p1 %patch2002 -p1 diff --git a/protect-geometry-QTBUG-40584.patch b/protect-geometry-QTBUG-40584.patch new file mode 100644 index 0000000..9c65c77 --- /dev/null +++ b/protect-geometry-QTBUG-40584.patch @@ -0,0 +1,18 @@ +diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp +index 35a526e..d417e41 100644 +--- a/src/widgets/kernel/qwidgetwindow.cpp ++++ b/src/widgets/kernel/qwidgetwindow.cpp +@@ -551,6 +551,13 @@ void QWidgetWindow::updateGeometry() + + const QMargins margins = frameMargins(); + ++ if (geometry().x() != m_widget->data->crect.x() || ++ geometry().y() != m_widget->data->crect.y()) ++ m_widget->setAttribute(Qt::WA_Moved); ++ if (geometry().width() != m_widget->data->crect.width() || ++ geometry().height() != m_widget->data->crect.height()) ++ m_widget->setAttribute(Qt::WA_Resized); ++ + m_widget->data->crect = geometry(); + QTLWExtra *te = m_widget->d_func()->topData(); + te->posIncludesFrame= false; diff --git a/qtbase-opensource-src-5.3.1.tar.xz b/qtbase-opensource-src-5.3.1.tar.xz deleted file mode 100644 index 87b635c..0000000 --- a/qtbase-opensource-src-5.3.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7b5a138d30d7c0228a51084407d5210f6d1acfbee2f95b87f189872cfcd3a569 -size 46679724 diff --git a/qtbase-opensource-src-5.3.2.tar.xz b/qtbase-opensource-src-5.3.2.tar.xz new file mode 100644 index 0000000..89fb6f8 --- /dev/null +++ b/qtbase-opensource-src-5.3.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:145d325c0f923a7cf9389c4704567d74338b7f7e5df54a19ce44376936771ee6 +size 48158068