summaryrefslogtreecommitdiff
path: root/vcl/unx/kde4/KDEXLib.hxx
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2013-11-14 11:29:15 +0100
committerMichael Meeks <michael.meeks@collabora.com>2013-11-20 07:25:32 -0600
commitfa8b5ae8e24fe26de7b26eff8a4a523ab22408fa (patch)
tree8a7075c2818f7537b252a8658a15cef55e1ea6b7 /vcl/unx/kde4/KDEXLib.hxx
parent297e316cac3118b0052aa5a9cdc2008c9aad5549 (diff)
Redirect file picker UI processing to GUI thread.
If a KDE4FilePicker is opened via an remote UNO call, e.g. via a RPC Java call, a JVM is started in a new thread to handle the call. This was creating the KDE4FilePicker in the non-UI JVM process, which crashes LibreOffice. Therefore we redirect the processing of all FilePicker calls to the main thread. This fixes fdo#71145. Change-Id: If6ec2d205af5a883df35fddb44a12ac43e3560f0 Reviewed-on: https://gerrit.libreoffice.org/6683 Tested-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Diffstat (limited to 'vcl/unx/kde4/KDEXLib.hxx')
-rw-r--r--vcl/unx/kde4/KDEXLib.hxx10
1 files changed, 10 insertions, 0 deletions
diff --git a/vcl/unx/kde4/KDEXLib.hxx b/vcl/unx/kde4/KDEXLib.hxx
index 1e3adc9e7a0d..d9bd4d611deb 100644
--- a/vcl/unx/kde4/KDEXLib.hxx
+++ b/vcl/unx/kde4/KDEXLib.hxx
@@ -27,6 +27,8 @@
#include <qsocketnotifier.h>
#include <qtimer.h>
+#include <unx/salinst.h>
+
class VCLKDEApplication;
class KDEXLib : public QObject, public SalXLib
@@ -65,6 +67,9 @@ class KDEXLib : public QObject, public SalXLib
void startTimeoutTimerSignal();
void startUserEventTimerSignal();
void processYieldSignal( bool bWait, bool bHandleAllCurrentEvents );
+ com::sun::star::uno::Reference< com::sun::star::ui::dialogs::XFilePicker2 >
+ createFilePickerSignal( const com::sun::star::uno::Reference<
+ com::sun::star::uno::XComponentContext >& );
public:
KDEXLib();
@@ -80,6 +85,11 @@ class KDEXLib : public QObject, public SalXLib
virtual void PostUserEvent();
void doStartup();
+
+ public Q_SLOTS:
+ virtual com::sun::star::uno::Reference< com::sun::star::ui::dialogs::XFilePicker2 >
+ createFilePicker( const com::sun::star::uno::Reference<
+ com::sun::star::uno::XComponentContext >& );
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */