fdo#78742: SfxFilterMatcher: respect requested document service if set
sfx2::DocumentInserter::CreateMediumList() creates a SfxFilterMatcher
that should match Writer filters only, but actually Calc filters may be
returned; check that the document service matches.
(regression from 3da8f3680556e0163f660a0a159930337c8c32ff)
Change-Id: I6208d38c1110355105aa5d1ffa1b57142193a4d7
(cherry picked from commit 805fd1ca343d6295b8114a24cc29bdac332f266d)
Reviewed-on: https://gerrit.libreoffice.org/9404
Reviewed-by: Kohei Yoshida <libreoffice@kohei.us>
Tested-by: Kohei Yoshida <libreoffice@kohei.us>
diff --git a/sfx2/source/bastyp/fltfnc.cxx b/sfx2/source/bastyp/fltfnc.cxx
index 65974d0..69c873a 100644
--- a/sfx2/source/bastyp/fltfnc.cxx
+++ b/sfx2/source/bastyp/fltfnc.cxx
@@ -482,7 +482,9 @@ sal_uInt32 SfxFilterMatcher::GuessFilterControlDefaultUI( SfxMedium& rMedium, c
// Type detection returned a suitable filter for this. Use it.
pFilter = SfxFilter::GetFilterByName(aFilterName);
if (!pFilter)
// fdo#78742 respect requested document service if set
if (!pFilter || (!m_rImpl.aName.isEmpty()
&& m_rImpl.aName != pFilter->GetServiceName()))
{
// detect filter by given type
// In case of this matcher is bound to a particular document type: