88 lines
3.6 KiB
Diff
88 lines
3.6 KiB
Diff
From 62ba88176c10469588e4bbb73cbf33889df08dbc Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolan.mcnamara@collabora.com>
|
|
Date: Wed, 22 Nov 2023 21:14:41 +0000
|
|
Subject: [PATCH] reuse AllowedLinkProtocolFromDocument in impress/draw
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Change-Id: I73ca4f087946a45dbf92d69a0dc1e769de9b5690
|
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159843
|
|
Tested-by: Jenkins
|
|
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
|
|
(cherry picked from commit f0942eed2eb328b04856f20613f5226d66b66a20)
|
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159759
|
|
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
|
|
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159884
|
|
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
|
|
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
|
|
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159914
|
|
Reviewed-by: Eike Rathke <erack@redhat.com>
|
|
|
|
erAck: backported to 6.4.7.2
|
|
|
|
---
|
|
sd/source/ui/app/sdmod1.cxx | 29 ++++++++++++++++++-----------
|
|
1 file changed, 18 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/sd/source/ui/app/sdmod1.cxx b/sd/source/ui/app/sdmod1.cxx
|
|
index 3d84ddb..8d42653 100644
|
|
--- a/sd/source/ui/app/sdmod1.cxx
|
|
+++ b/sd/source/ui/app/sdmod1.cxx
|
|
@@ -32,6 +32,7 @@
|
|
#include <sfx2/dispatch.hxx>
|
|
#include <sfx2/request.hxx>
|
|
#include <sfx2/templatedlg.hxx>
|
|
+#include <svl/stritem.hxx>
|
|
#include <editeng/eeitem.hxx>
|
|
|
|
#include <svx/svxids.hrc>
|
|
@@ -193,26 +194,32 @@ void SdModule::Execute(SfxRequest& rReq)
|
|
{
|
|
bool bIntercept = false;
|
|
::sd::DrawDocShell* pDocShell = dynamic_cast< ::sd::DrawDocShell *>( SfxObjectShell::Current() );
|
|
- if (pDocShell)
|
|
+ ::sd::ViewShell* pViewShell = pDocShell ? pDocShell->GetViewShell() : nullptr;
|
|
+ if (pViewShell)
|
|
{
|
|
- ::sd::ViewShell* pViewShell = pDocShell->GetViewShell();
|
|
- if (pViewShell)
|
|
+ if( sd::SlideShow::IsRunning( pViewShell->GetViewShellBase() ) )
|
|
{
|
|
- if( sd::SlideShow::IsRunning( pViewShell->GetViewShellBase() ) )
|
|
+ // Prevent documents from opening while the slide
|
|
+ // show is running, except when this request comes
|
|
+ // from a shape interaction.
|
|
+ if (rReq.GetArgs() == nullptr)
|
|
{
|
|
- // Prevent documents from opening while the slide
|
|
- // show is running, except when this request comes
|
|
- // from a shape interaction.
|
|
- if (rReq.GetArgs() == nullptr)
|
|
- {
|
|
- bIntercept = true;
|
|
- }
|
|
+ bIntercept = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!bIntercept)
|
|
{
|
|
+ if (const SfxStringItem* pURLItem = rReq.GetArg<SfxStringItem>(SID_FILE_NAME))
|
|
+ {
|
|
+ if (!pViewShell || !SfxObjectShell::AllowedLinkProtocolFromDocument(pURLItem->GetValue(),
|
|
+ pViewShell->GetObjectShell(),
|
|
+ pViewShell->GetFrameWeld()))
|
|
+ {
|
|
+ return;
|
|
+ }
|
|
+ }
|
|
SfxGetpApp()->ExecuteSlot(rReq, SfxGetpApp()->GetInterface());
|
|
}
|
|
else
|
|
--
|
|
2.43.0
|
|
|