summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2014-04-15 08:41:21 +0000
committerTomas Chvatal <scarabeus@gentoo.org>2014-04-15 08:41:21 +0000
commit3fee33a3207ed4470921570cff50eb549e91bdf1 (patch)
treea390b0340b4d6b01ccd7a2461132f53fb89a6cad /app-office/libreoffice
parentRemove obsolete mask on kde-misc/youtube-servicemenu. (diff)
downloadgentoo-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/ChangeLog6
-rw-r--r--app-office/libreoffice/files/libreoffice-4.2.3.3-kde4-timer-mutex.patch46
-rw-r--r--app-office/libreoffice/libreoffice-4.2.3.3.ebuild5
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="