[Libreoffice-commits] core.git: Branch 'distro/lhm/libreoffice-5-2+backports' - vcl/unx
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Tue Sep 25 15:22:09 UTC 2018
vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx | 3 +++
1 file changed, 3 insertions(+)
New commits:
commit 636fc7e326b56537ac0d3c3df06f03a4a4906564
Author: Michael Weghorn <m.weghorn at posteo.de>
AuthorDate: Wed Sep 12 10:51:25 2018 +0200
Commit: Michael Weghorn <m.weghorn at posteo.de>
CommitDate: Tue Sep 25 17:21:42 2018 +0200
tdf#119814 Fix UI freeze with gtk3_kde5 filepicker
Previously, the loop inside 'runCommands()' was triggered
every time 'm_stdinNotifier' got activated.
This could lead to both the soffice and the separate
lo_kde5filepicker process blocking indefinitely, when
during the execution of 'KDE5FilePicker::execute()', the
processing of another event started which would then
be blocked in the 'readCommand()' call; finally causing
both processes to wait for input from stdin that would
never appear (s. backtrace attached to tdf#119814).
Since the loop inside 'runCommands()' runs until all
commands have been processed, it's sufficient to
start it once when 'm_stdinNotifier' is activated for the
first time.
Change-Id: Ie9180dbaf7e3f7ec033ad6d53fabe1b1ee363465
Reviewed-on: https://gerrit.libreoffice.org/60380
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn at posteo.de>
(cherry picked from commit e95930d96459cc653342e78617db9498255569d0)
Reviewed-on: https://gerrit.libreoffice.org/60561
Tested-by: Michael Weghorn <m.weghorn at posteo.de>
diff --git a/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx b/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx
index eac97d7ec1ab..d023e4461448 100644
--- a/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx
+++ b/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx
@@ -65,6 +65,9 @@ FilePickerIpc::~FilePickerIpc() = default;
void FilePickerIpc::readCommands()
{
+ // don't trigger again, loop runs until all is done
+ disconnect(m_stdinNotifier, &QSocketNotifier::activated, this, &FilePickerIpc::readCommands);
+
while (readCommand())
{
// read next command
More information about the Libreoffice-commits
mailing list