summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2017-11-24 13:43:03 +0000
committerAndras Timar <andras.timar@collabora.com>2017-11-24 16:29:58 +0100
commit098d0445c8c42087d37208a9b34c39ae74251a9f (patch)
tree90311ea9c60b86230775725b01389d9059cdfbbf /vcl
parentd7357db1c2b2092913fd33ad58b63ad473fbc9c4 (diff)
tdf#114025 - avoid deadlock between x11 clipboard and the lock dialog.
Change-Id: I06e66f59531e7ff6a2e0bf874ebcf2a882d89b63 Reviewed-on: https://gerrit.libreoffice.org/45234 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/window/dialog.cxx16
1 files changed, 9 insertions, 7 deletions
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index d15072cce7f6..5c5acebe0827 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -1065,14 +1065,16 @@ short Dialog::Execute()
VclPtr<vcl::Window> xWindow = this;
-
-
- css::uno::Reference< css::uno::XComponentContext > xContext(
+ {
+ SolarMutexReleaser aReleaser; // tdf#114025
+ css::uno::Reference< css::uno::XComponentContext > xContext(
comphelper::getProcessComponentContext() );
- css::uno::Reference<css::frame::XGlobalEventBroadcaster> xEventBroadcaster(css::frame::theGlobalEventBroadcaster::get(xContext), css::uno::UNO_QUERY_THROW);
- css::document::DocumentEvent aObject;
- aObject.EventName = "DialogExecute";
- xEventBroadcaster->documentEventOccured(aObject);
+ css::uno::Reference<css::frame::XGlobalEventBroadcaster> xEventBroadcaster(css::frame::theGlobalEventBroadcaster::get(xContext), css::uno::UNO_QUERY_THROW);
+ css::document::DocumentEvent aObject;
+ aObject.EventName = "DialogExecute";
+ xEventBroadcaster->documentEventOccured(aObject);
+ }
+
// Yield util EndDialog is called or dialog gets destroyed
// (the latter should not happen, but better safe than sorry
while ( !xWindow->IsDisposed() && mbInExecute )