diff options
author | 2014-04-15 08:41:21 +0000 | |
---|---|---|
committer | 2014-04-15 08:41:21 +0000 | |
commit | 3fee33a3207ed4470921570cff50eb549e91bdf1 (patch) | |
tree | a390b0340b4d6b01ccd7a2461132f53fb89a6cad /app-office/libreoffice | |
parent | Remove obsolete mask on kde-misc/youtube-servicemenu. (diff) | |
download | gentoo-2-3fee33a3207ed4470921570cff50eb549e91bdf1.tar.gz gentoo-2-3fee33a3207ed4470921570cff50eb549e91bdf1.tar.bz2 gentoo-2-3fee33a3207ed4470921570cff50eb549e91bdf1.zip |
Add patch to fix bug#507596. KDE UI should work now again.
(Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key 8EEE3BE8)
Diffstat (limited to 'app-office/libreoffice')
-rw-r--r-- | app-office/libreoffice/ChangeLog | 6 | ||||
-rw-r--r-- | app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch | 46 | ||||
-rw-r--r-- | app-office/libreoffice/libreoffice-4.2.3.3.ebuild | 5 |
3 files changed, 55 insertions, 2 deletions
diff --git a/app-office/libreoffice/ChangeLog b/app-office/libreoffice/ChangeLog index ea6674007f33..f112d99807de 100644 --- a/app-office/libreoffice/ChangeLog +++ b/app-office/libreoffice/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for app-office/libreoffice # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-office/libreoffice/ChangeLog,v 1.550 2014/04/13 10:23:50 scarabeus Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-office/libreoffice/ChangeLog,v 1.551 2014/04/15 08:41:21 scarabeus Exp $ + + 15 Apr 2014; Tomáš Chvátal <scarabeus@gentoo.org> + +files/libreoffice-4.2.3.3-kde4-timer-mutex.patch, libreoffice-4.2.3.3.ebuild: + Add patch to fix bug#507596. KDE UI should work now again. *libreoffice-4.2.3.3 (13 Apr 2014) diff --git a/app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch b/app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch new file mode 100644 index 000000000000..c0f35a734059 --- /dev/null +++ b/app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch @@ -0,0 +1,46 @@ +From 7dba6e0a71d090f06a6a1a39e87572674593b48a Mon Sep 17 00:00:00 2001 +From: Jan-Marek Glogowski <glogow@fbihome.de> +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 <caolanm@redhat.com> +Tested-by: Caolán McNamara <caolanm@redhat.com> +--- +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() : + 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 ); + + // 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 diff --git a/app-office/libreoffice/libreoffice-4.2.3.3.ebuild b/app-office/libreoffice/libreoffice-4.2.3.3.ebuild index 698be1f60fd1..3921a1702931 100644 --- a/app-office/libreoffice/libreoffice-4.2.3.3.ebuild +++ b/app-office/libreoffice/libreoffice-4.2.3.3.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/app-office/libreoffice/libreoffice-4.2.3.3.ebuild,v 1.1 2014/04/13 10:23:50 scarabeus Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-office/libreoffice/libreoffice-4.2.3.3.ebuild,v 1.2 2014/04/15 08:41:21 scarabeus Exp $ EAPI=5 @@ -240,6 +240,9 @@ PATCHES=( # staged for git master "${FILESDIR}/${PN}-4.2.0.4-curl-config.patch" + + # kde mutexes + "${FILESDIR}/${P}-kde4-timer-mutex.patch" ) REQUIRED_USE=" |