summaryrefslogtreecommitdiffstats
path: root/source/l/qt/patches/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2019-05-04 01:29:20 +0000
committer Eric Hameleers <alien@slackware.com>2019-05-04 08:59:47 +0200
commit125048ad7d212c1f226b709697505b0ee6a079e4 (patch)
tree4d930a5b4d508518dedfc25375251fe24dda7b92 /source/l/qt/patches/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch
parentfe8c535f50697455b55b8ded880317ac33910704 (diff)
downloadcurrent-125048ad7d212c1f226b709697505b0ee6a079e4.tar.gz
current-125048ad7d212c1f226b709697505b0ee6a079e4.tar.xz
Sat May 4 01:29:20 UTC 201920190504012920
d/gcc-9.1.0-x86_64-1.txz: Upgraded. d/gcc-brig-9.1.0-x86_64-1.txz: Upgraded. d/gcc-g++-9.1.0-x86_64-1.txz: Upgraded. d/gcc-gfortran-9.1.0-x86_64-1.txz: Upgraded. d/gcc-gnat-9.1.0-x86_64-1.txz: Upgraded. d/gcc-go-9.1.0-x86_64-1.txz: Upgraded. Shared library .so-version bump. d/gcc-objc-9.1.0-x86_64-1.txz: Upgraded. d/libtool-2.4.6-x86_64-11.txz: Rebuilt. Recompiled to update embedded GCC version number. d/llvm-8.0.0-x86_64-2.txz: Rebuilt. Recompiled with -DLLVM_INSTALL_UTILS=ON. Thanks to Lockywolf. d/swig-4.0.0-x86_64-1.txz: Upgraded. l/glib2-2.60.2-x86_64-1.txz: Upgraded. l/qt-4.8.7-x86_64-13.txz: Rebuilt. Patched to fix FTBFS with gcc9 (also fixes FTBFS with qtscriptgenerator and possibly other projects that use qt4).
Diffstat (limited to 'source/l/qt/patches/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch')
-rw-r--r--source/l/qt/patches/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch94
1 files changed, 94 insertions, 0 deletions
diff --git a/source/l/qt/patches/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch b/source/l/qt/patches/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch
new file mode 100644
index 000000000..6d3bf2f2c
--- /dev/null
+++ b/source/l/qt/patches/qt-everywhere-opensource-src-4.8.6-QTBUG-34614.patch
@@ -0,0 +1,94 @@
+--- src/corelib/kernel/qeventdispatcher_glib.cpp.sav 2014-03-28 15:26:37.000000000 +0100
++++ src/corelib/kernel/qeventdispatcher_glib.cpp 2014-04-24 09:44:09.358659204 +0200
+@@ -255,22 +255,30 @@ struct GPostEventSource
+ GSource source;
+ QAtomicInt serialNumber;
+ int lastSerialNumber;
++ QEventLoop::ProcessEventsFlags processEventsFlags;
+ QEventDispatcherGlibPrivate *d;
+ };
+
+ static gboolean postEventSourcePrepare(GSource *s, gint *timeout)
+ {
++ GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
+ QThreadData *data = QThreadData::current();
+ if (!data)
+ return false;
+
++ QEventLoop::ProcessEventsFlags excludeAllFlags
++ = QEventLoop::ExcludeUserInputEvents
++ | QEventLoop::ExcludeSocketNotifiers
++ | QEventLoop::X11ExcludeTimers;
++ if ((source->processEventsFlags & excludeAllFlags) == excludeAllFlags)
++ return false;
++
+ gint dummy;
+ if (!timeout)
+ timeout = &dummy;
+ const bool canWait = data->canWaitLocked();
+ *timeout = canWait ? -1 : 0;
+
+- GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
+ return (!canWait
+ || (source->serialNumber != source->lastSerialNumber));
+ }
+@@ -284,8 +292,14 @@ static gboolean postEventSourceDispatch(
+ {
+ GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
+ source->lastSerialNumber = source->serialNumber;
+- QCoreApplication::sendPostedEvents();
+- source->d->runTimersOnceWithNormalPriority();
++ QEventLoop::ProcessEventsFlags excludeAllFlags
++ = QEventLoop::ExcludeUserInputEvents
++ | QEventLoop::ExcludeSocketNotifiers
++ | QEventLoop::X11ExcludeTimers;
++ if ((source->processEventsFlags & excludeAllFlags) != excludeAllFlags) {
++ QCoreApplication::sendPostedEvents();
++ source->d->runTimersOnceWithNormalPriority();
++ }
+ return true; // i dunno, george...
+ }
+
+@@ -329,6 +343,7 @@ QEventDispatcherGlibPrivate::QEventDispa
+ postEventSource = reinterpret_cast<GPostEventSource *>(g_source_new(&postEventSourceFuncs,
+ sizeof(GPostEventSource)));
+ postEventSource->serialNumber = 1;
++ postEventSource->processEventsFlags = QEventLoop::AllEvents;
+ postEventSource->d = this;
+ g_source_set_can_recurse(&postEventSource->source, true);
+ g_source_attach(&postEventSource->source, mainContext);
+@@ -423,6 +438,7 @@ bool QEventDispatcherGlib::processEvents
+
+ // tell postEventSourcePrepare() and timerSource about any new flags
+ QEventLoop::ProcessEventsFlags savedFlags = d->timerSource->processEventsFlags;
++ d->postEventSource->processEventsFlags = flags;
+ d->timerSource->processEventsFlags = flags;
+ d->socketNotifierSource->processEventsFlags = flags;
+
+@@ -435,6 +451,7 @@ bool QEventDispatcherGlib::processEvents
+ while (!result && canWait)
+ result = g_main_context_iteration(d->mainContext, canWait);
+
++ d->postEventSource->processEventsFlags = savedFlags;
+ d->timerSource->processEventsFlags = savedFlags;
+ d->socketNotifierSource->processEventsFlags = savedFlags;
+
+--- src/corelib/kernel/qeventdispatcher_unix.cpp.sav 2013-06-07 07:16:52.000000000 +0200
++++ src/corelib/kernel/qeventdispatcher_unix.cpp 2014-04-24 09:43:06.927589535 +0200
+@@ -905,7 +905,15 @@ bool QEventDispatcherUNIX::processEvents
+
+ // we are awake, broadcast it
+ emit awake();
+- QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
++
++ QEventLoop::ProcessEventsFlags excludeAllFlags
++ = QEventLoop::ExcludeUserInputEvents
++ | QEventLoop::ExcludeSocketNotifiers
++ | QEventLoop::X11ExcludeTimers;
++ if ((flags & excludeAllFlags) == excludeAllFlags)
++ return false;
++ if(( flags & excludeAllFlags ) != excludeAllFlags )
++ QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
+
+ int nevents = 0;
+ const bool canWait = (d->threadData->canWaitLocked()