- Fix haning in KDE by applying upstream fix. Will be included
in next release. - added patches: * kde4-4.2.3.3-timer-mutex.patch OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=139
This commit is contained in:
parent
5f625ca24c
commit
0f2ade2d09
46
kde4-4.2.3.3-timer-mutex.patch
Normal file
46
kde4-4.2.3.3-timer-mutex.patch
Normal file
@ -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
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 15 08:32:38 UTC 2014 - tchvatal@suse.com
|
||||||
|
|
||||||
|
- Fix haning in KDE by applying upstream fix. Will be included
|
||||||
|
in next release.
|
||||||
|
- added patches:
|
||||||
|
* kde4-4.2.3.3-timer-mutex.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Apr 14 20:00:00 UTC 2014 - tbehrens@suse.com
|
Mon Apr 14 20:00:00 UTC 2014 - tbehrens@suse.com
|
||||||
|
|
||||||
|
@ -89,6 +89,8 @@ Patch13: jvmfwk-disable-gcj.diff
|
|||||||
Patch16: wizards-create-temlates-with-python-2.6.diff
|
Patch16: wizards-create-temlates-with-python-2.6.diff
|
||||||
# Fix fdo#74697 add Bluez 5 support for impress remote.
|
# Fix fdo#74697 add Bluez 5 support for impress remote.
|
||||||
Patch17: bluez5-support-for-impress-remote.diff
|
Patch17: bluez5-support-for-impress-remote.diff
|
||||||
|
# PATCH-FIX-UPSTREAM: fix kde hanging in 4.2.3.3
|
||||||
|
Patch18: kde4-4.2.3.3-timer-mutex.patch
|
||||||
# try to save space by using hardlinks
|
# try to save space by using hardlinks
|
||||||
Patch990: install-with-hardlinks.diff
|
Patch990: install-with-hardlinks.diff
|
||||||
BuildRequires: ImageMagick
|
BuildRequires: ImageMagick
|
||||||
@ -840,6 +842,7 @@ Provides additional %{langname} translations and resources for %{project}. \
|
|||||||
%patch13 -p1
|
%patch13 -p1
|
||||||
%patch16 -p1
|
%patch16 -p1
|
||||||
%patch17 -p1
|
%patch17 -p1
|
||||||
|
%patch18 -p1
|
||||||
%patch990 -p1
|
%patch990 -p1
|
||||||
# 256x256 icons
|
# 256x256 icons
|
||||||
tar -xjf %{SOURCE20}
|
tar -xjf %{SOURCE20}
|
||||||
|
Loading…
Reference in New Issue
Block a user