diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2017-11-24 13:43:03 +0000 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-11-24 16:29:58 +0100 |
commit | 098d0445c8c42087d37208a9b34c39ae74251a9f (patch) | |
tree | 90311ea9c60b86230775725b01389d9059cdfbbf /vcl | |
parent | d7357db1c2b2092913fd33ad58b63ad473fbc9c4 (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.cxx | 16 |
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 ) |