scarabeus 14/04/15 14:50:59 Modified: libreoffice-4.2.3.3-kde4-timer-mutex.patch Log: Reverse the patch, I added the wrong one in previous commit. bug#507720. (Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key 8EEE3BE8)
Revision Changes Path 1.2 app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch?rev=1.2&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch?rev=1.2&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch?r1=1.1&r2=1.2 Index: libreoffice-4.2.3.3-kde4-timer-mutex.patch =================================================================== RCS file: /var/cvsroot/gentoo-x86/app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- libreoffice-4.2.3.3-kde4-timer-mutex.patch 15 Apr 2014 08:41:21 -0000 1.1 +++ libreoffice-4.2.3.3-kde4-timer-mutex.patch 15 Apr 2014 14:50:58 -0000 1.2 @@ -1,46 +1,19 @@ -From 7dba6e0a71d090f06a6a1a39e87572674593b48a Mon Sep 17 00:00:00 2001 -From: Jan-Marek Glogowski <[email protected]> -Date: Mon, 10 Mar 2014 14:44:05 +0000 -Subject: fdo#73115: Always run timeouts as events - -Right-click popup menus run click events throught the LO main loop. -In case of KDE4 the LO main loop is run by a timer in the main thread, -with Qt::DirectConnection execution. - -If the timeout actually starts a nested event loop for a new dialog, -the timer is blocked, the nested mainloop detects it was started -from the timeout and drops the blocked timout from polling, which -blocks any further LibreOffice event loop processing. - -This changes the timers to Qt::QueuedConnection, so they always -generate an event and are processed by the Qt event loop. - -Change-Id: Ie626b22be3d8f9b8934bcc5e9e0e67a365549cfc -(cherry picked from commit aeda478a02523cec146f6af69710f0391061db56) -Reviewed-on: https://gerrit.libreoffice.org/8514 -Reviewed-by: Caolán McNamara <[email protected]> -Tested-by: Caolán McNamara <[email protected]> ---- -diff --git a/vcl/unx/kde4/KDEXLib.cxx b/vcl/unx/kde4/KDEXLib.cxx -index b4be6d6..4a9b70b 100644 ---- a/vcl/unx/kde4/KDEXLib.cxx -+++ b/vcl/unx/kde4/KDEXLib.cxx -@@ -67,9 +67,13 @@ KDEXLib::KDEXLib() : +--- a/vcl/unx/kde4/KDEXLib.cxx 2014-04-08 13:46:25.000000000 +0200 ++++ b/vcl/unx/kde4/KDEXLib.cxx 2014-04-14 07:17:30.000000000 +0200 +@@ -67,13 +67,9 @@ eventLoopType( LibreOfficeEventLoop ), m_bYieldFrozen( false ) { -- // the timers created here means they belong to the main thread -- connect( &timeoutTimer, SIGNAL( timeout()), this, SLOT( timeoutActivated())); -- connect( &userEventTimer, SIGNAL( timeout()), this, SLOT( userEventActivated())); -+ // the timers created here means they belong to the main thread. -+ // As the timeoutTimer runs the LO event queue, which may block on a dialog, -+ // the timer has to use a Qt::QueuedConnection, otherwise the nested event -+ // loop will detect the blocking timer and drop it from the polling -+ // freezing LO X11 processing. -+ connect( &timeoutTimer, SIGNAL( timeout()), this, SLOT( timeoutActivated()), Qt::QueuedConnection ); -+ connect( &userEventTimer, SIGNAL( timeout()), this, SLOT( userEventActivated()), Qt::QueuedConnection ); +- // the timers created here means they belong to the main thread. +- // As the timeoutTimer runs the LO event queue, which may block on a dialog, +- // the timer has to use a Qt::QueuedConnection, otherwise the nested event +- // loop will detect the blocking timer and drop it from the polling +- // freezing LO X11 processing. +- connect( &timeoutTimer, SIGNAL( timeout()), this, SLOT( timeoutActivated()), Qt::QueuedConnection ); +- connect( &userEventTimer, SIGNAL( timeout()), this, SLOT( userEventActivated()), Qt::QueuedConnection ); ++ // the timers created here means they belong to the main thread ++ connect( &timeoutTimer, SIGNAL( timeout()), this, SLOT( timeoutActivated())); ++ connect( &userEventTimer, SIGNAL( timeout()), this, SLOT( userEventActivated())); // QTimer::start() can be called only in its (here main) thread, so this will // forward between threads if needed --- -cgit v0.9.0.2-2-gbebe
