diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-01-08 17:11:50 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-01-10 09:52:06 +0100 |
commit | 7cb471e32c9b9db960bb3671c592dcd3292e4e52 (patch) | |
tree | 251ddb77fdb19d0fa6ccc455a5f806d9126ea621 | |
parent | fd373f5f584d9de82cce76b98bd21f7dfe38844c (diff) |
Resolves: tdf#122308 ensure parent for message dialog
Change-Id: Ie7e97d3beedfa007243e4a6b7408341857f2d903
Reviewed-on: https://gerrit.libreoffice.org/65981
Tested-by: Jenkins
Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sfx2/source/doc/objserv.cxx | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx index f69afb5e059e..6e0ce218e286 100644 --- a/sfx2/source/doc/objserv.cxx +++ b/sfx2/source/doc/objserv.cxx @@ -391,13 +391,22 @@ uno::Sequence< document::CmisVersion > SfxObjectShell::GetCmisVersions( ) void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) { + weld::Window* pDialogParent = rReq.GetFrameWeld(); + if (!pDialogParent) + { + SfxViewFrame* pFrame = GetFrame(); + if (!pFrame) + pFrame = SfxViewFrame::GetFirst(this); + if (pFrame) + pDialogParent = pFrame->GetWindow().GetFrameWeld(); + } sal_uInt16 nId = rReq.GetSlot(); if( SID_SIGNATURE == nId || SID_MACRO_SIGNATURE == nId ) { if ( QueryHiddenInformation( HiddenWarningFact::WhenSigning, nullptr ) == RET_YES ) - ( SID_SIGNATURE == nId ) ? SignDocumentContent(rReq.GetFrameWeld()) : SignScriptingContent(rReq.GetFrameWeld()); + ( SID_SIGNATURE == nId ) ? SignDocumentContent(pDialogParent) : SignScriptingContent(pDialogParent); return; } @@ -712,7 +721,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) if ( lErr != ERRCODE_IO_ABORT ) { SfxErrorContext aEc(ERRCTX_SFX_SAVEASDOC,GetTitle()); - ErrorHandler::HandleError(lErr, rReq.GetFrameWeld()); + ErrorHandler::HandleError(lErr, pDialogParent); } if ( nId == SID_EXPORTDOCASPDF ) @@ -801,7 +810,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) SetModified( false ); ErrCode lErr = GetErrorCode(); - ErrorHandler::HandleError(lErr, rReq.GetFrameWeld()); + ErrorHandler::HandleError(lErr, pDialogParent); rReq.SetReturnValue( SfxBoolItem(0, true) ); rReq.Done(); @@ -814,7 +823,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) case SID_DOCTEMPLATE: { // save as document templates - SfxSaveAsTemplateDialog aDlg(rReq.GetFrameWeld(), GetModel()); + SfxSaveAsTemplateDialog aDlg(pDialogParent, GetModel()); (void)aDlg.run(); break; } |