diff options
author | Tor Lillqvist <tml@collabora.com> | 2019-08-21 11:57:28 +0300 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2019-08-22 12:38:50 +0200 |
commit | 05e03911cd1f8a355b6410d3997cffc2c794a1e9 (patch) | |
tree | cb0cc5484e40345a1994b2b4f358cdbb5d2d2711 /extensions | |
parent | b50d1a42064c8333926166ec047d3467c83d2fd0 (diff) |
More hacks for quit requests from an OLE Automation client
Actually I am now not so sure whether the TerminationVetoer thing is
needed or not. Will have to experiment later with the customer use
case what happens if I remove all that. Maybe adding it was a mistake,
as misinterpretation of what was going on.
Change-Id: I252e1233cae1622099bc3310814132dae58b2aed
(cherry picked from commit 9c50273a9f3a15d1ff7ea4880638ca833570e0bd)
Reviewed-on: https://gerrit.libreoffice.org/77948
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/source/ole/unoobjw.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/extensions/source/ole/unoobjw.cxx b/extensions/source/ole/unoobjw.cxx index bc166d979b63..6f25babcc81c 100644 --- a/extensions/source/ole/unoobjw.cxx +++ b/extensions/source/ole/unoobjw.cxx @@ -85,6 +85,7 @@ #include <osl/interlck.h> #include <com/sun/star/uno/genfunc.h> #include <comphelper/automationinvokedzone.hxx> +#include <comphelper/asyncquithandler.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/profilezone.hxx> #include <comphelper/windowsdebugoutput.hxx> @@ -148,8 +149,9 @@ public: void SAL_CALL queryTermination( const EventObject& ) override { SAL_INFO("extensions.olebridge", "TerminationVetoer::queryTermination: count=" << mnCount); - // Always veto termination while an OLE object is active - if (mnCount > 0) + // Always veto termination while an OLE object is active, except if it is an OLE object that + // has asked us to quit. + if (!AsyncQuitHandler::instance().IsForceQuit() && mnCount > 0) { SAL_INFO("extensions.olebridge", "TerminationVetoer::queryTermination: Throwing!"); throw css::frame::TerminationVetoException(); |