diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2013-11-14 11:29:15 +0100 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2013-11-20 07:25:32 -0600 |
commit | fa8b5ae8e24fe26de7b26eff8a4a523ab22408fa (patch) | |
tree | 8a7075c2818f7537b252a8658a15cef55e1ea6b7 /vcl/unx/kde4/KDEXLib.hxx | |
parent | 297e316cac3118b0052aa5a9cdc2008c9aad5549 (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.hxx | 10 |
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: */ |