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-09 11:49:53 +0100 |
commit | 8b25fa0e3051e2b168d66e40e485bd9e6e991341 (patch) | |
tree | 0e5d290dea777d6cf3861f265b4296aebd314224 /sfx2/source | |
parent | 47390e2ddf4a00b1d2c957e8b9b0b2ec923929df (diff) |
Resolves: tdf#122308 ensure parent for message dialog
Change-Id: Ie7e97d3beedfa007243e4a6b7408341857f2d903
Reviewed-on: https://gerrit.libreoffice.org/65980
Tested-by: Jenkins
Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
Tested-by: Xisco Faulí <xiscofauli@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sfx2/source')
-rw-r--r-- | sfx2/source/doc/objserv.cxx | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx index 3b9737c5ae5e..cb7bbfd75d75 100644 --- a/sfx2/source/doc/objserv.cxx +++ b/sfx2/source/doc/objserv.cxx @@ -392,13 +392,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; } @@ -425,7 +434,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq) if ( !IsOwnStorageFormat( *GetMedium() ) ) return; - SfxVersionDialog aDlg(rReq.GetFrameWeld(), pFrame, IsSaveVersionOnClose()); + SfxVersionDialog aDlg(pDialogParent, pFrame, IsSaveVersionOnClose()); aDlg.run(); SetSaveVersionOnClose(aDlg.IsSaveVersionOnClose()); rReq.Done(); @@ -713,7 +722,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 ) @@ -802,7 +811,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(); @@ -815,7 +824,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; } |