diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2018-09-12 10:51:25 +0200 |
---|---|---|
committer | Michael Weghorn <m.weghorn@posteo.de> | 2018-09-12 19:01:44 +0200 |
commit | e95930d96459cc653342e78617db9498255569d0 (patch) | |
tree | 0dbb68417e52274ab98850c8418a90277fafd0fa /vcl | |
parent | 032eb5399be3fbfdd6bfffc93bd55ddd63909701 (diff) |
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@posteo.de>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx b/vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx index 26c19f6b4c9b..aeb864eae2ef 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 |