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-08 22:00:21 +0100 |
commit | 79358a7588e1d5f02b8f9bf1ba9feb316af7f2a5 (patch) | |
tree | cde528f441990252fdc0c5b7745cdb09e1294965 /sfx2/source | |
parent | af3e421fdb32f172d40ba4641f24f1356fcb55ce (diff) |
Resolves: tdf#122308 ensure parent for message dialog
Change-Id: Ie7e97d3beedfa007243e4a6b7408341857f2d903
Reviewed-on: https://gerrit.libreoffice.org/65979
Tested-by: Jenkins
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 9fb13a899b1b..ff6755257000 100644 --- a/sfx2/source/doc/objserv.cxx +++ b/sfx2/source/doc/objserv.cxx @@ -404,13 +404,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; } @@ -437,7 +446,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(); @@ -802,7 +811,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 ) @@ -891,7 +900,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(); @@ -904,7 +913,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; } |