summaryrefslogtreecommitdiffstats
path: root/debian/patches/reuse-AllowedLinkProtocolFromDocument-2.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/reuse-AllowedLinkProtocolFromDocument-2.diff')
-rw-r--r--debian/patches/reuse-AllowedLinkProtocolFromDocument-2.diff81
1 files changed, 81 insertions, 0 deletions
diff --git a/debian/patches/reuse-AllowedLinkProtocolFromDocument-2.diff b/debian/patches/reuse-AllowedLinkProtocolFromDocument-2.diff
new file mode 100644
index 000000000..bbb080c01
--- /dev/null
+++ b/debian/patches/reuse-AllowedLinkProtocolFromDocument-2.diff
@@ -0,0 +1,81 @@
+From 569fa7f755718a06f23d25b2132bf0400cec7a0f 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: 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>
+---
+ 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 573ee853069b..b22feb2d1f21 100644
+--- a/sd/source/ui/app/sdmod1.cxx
++++ b/sd/source/ui/app/sdmod1.cxx
+@@ -33,6 +33,7 @@
+ #include <sfx2/docfile.hxx>
+ #include <sfx2/request.hxx>
+ #include <sfx2/templatedlg.hxx>
++#include <svl/stritem.hxx>
+ #include <editeng/eeitem.hxx>
+
+ #include <svx/svxids.hrc>
+@@ -192,26 +193,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
+--
+cgit v1.2.1
+