summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-01-08 17:11:50 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-01-09 11:49:53 +0100
commit8b25fa0e3051e2b168d66e40e485bd9e6e991341 (patch)
tree0e5d290dea777d6cf3861f265b4296aebd314224 /sfx2
parent47390e2ddf4a00b1d2c957e8b9b0b2ec923929df (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')
-rw-r--r--sfx2/source/doc/objserv.cxx19
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;
}