sfx2/source/doc/objmisc.cxx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)
New commits: commit bfc43aad0e8eb90e9d3495b940bc2283081f04c6 Author: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> AuthorDate: Wed Apr 13 08:01:29 2022 +0200 Commit: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> CommitDate: Thu Apr 14 16:15:25 2022 +0200 Prevent save interception when sharing Calc doc Using the dispatch mechanism means that this can be caught by the dispatch interceptor which we don't want in this place. Change-Id: Ie7e5f92e6043e2aff98d4887829a3573c12c6d08 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132941 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@allotropia.de> diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx index 9acfe6d1651b..a09a7ac9feef 100644 --- a/sfx2/source/doc/objmisc.cxx +++ b/sfx2/source/doc/objmisc.cxx @@ -97,6 +97,7 @@ #include <workwin.hxx> #include <sfx2/sfxdlg.hxx> #include <sfx2/infobar.hxx> +#include <sfx2/sfxbasemodel.hxx> #include <openflag.hxx> #include "objstor.hxx" #include <appopen.hxx> @@ -507,9 +508,16 @@ bool SfxObjectShell::SwitchToShared( bool bShared, bool bSave ) { // TODO/LATER: currently the application guards against the reentrance problem SetModified(); // the modified flag has to be set to let the document be stored with the shared flag - const SfxPoolItem* pItem = pViewFrame->GetBindings().ExecuteSynchron( HasName() ? SID_SAVEDOC : SID_SAVEASDOC ); - const SfxBoolItem* pResult = dynamic_cast<const SfxBoolItem*>( pItem ); - bResult = ( pResult && pResult->GetValue() ); + try + { + // Do *not* use dispatch mechanism in this place - we don't want others (extensions etc.) to intercept this. + pImpl->pBaseModel->store(); + bResult = true; + } + catch (...) + { + bResult = false; + } } }