1 diff --git sfx2/source/appl/appopen.cxx sfx2/source/appl/appopen.cxx
2 index b8b5222..ce90cf7 100644
3 --- sfx2/source/appl/appopen.cxx
4 +++ sfx2/source/appl/appopen.cxx
5 @@ -841,6 +841,29 @@ void SfxApplication::NewDocExec_Impl( SfxRequest& rReq )
7 //---------------------------------------------------------------------------
12 + * Check if a given filter type should open the hyperlinked document
15 + * @param rFilter filter object
17 +bool lcl_isFilterNativelySupported(const SfxFilter& rFilter)
19 + if (rFilter.IsOwnFormat())
22 + ::rtl::OUString aName = rFilter.GetFilterName();
23 + if (aName.indexOf(::rtl::OUString::createFromAscii("MS Excel")) == 0)
24 + // We can handle all Excel variants natively.
32 void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
35 @@ -1150,7 +1150,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq )
36 aTypeName = xTypeDetection->queryTypeByURL( aURL.Main );
37 SfxFilterMatcher& rMatcher = SFX_APP()->GetFilterMatcher();
38 const SfxFilter* pFilter = rMatcher.GetFilter4EA( aTypeName );
39 - if ( !pFilter || !( pFilter->IsOwnFormat() ))
40 + if (!pFilter || !lcl_isFilterNativelySupported(*pFilter))
42 // hyperlink does not link to own type => special handling (http, ftp) browser and (other external protocols) OS
43 Reference< XSystemShellExecute > xSystemShellExecute( ::comphelper::getProcessServiceFactory()->createInstance(
44 diff --git sfx2/source/view/topfrm.cxx sfx2/source/view/topfrm.cxx
45 index db1b3a2..921696e 100644
46 --- sfx2/source/view/topfrm.cxx
47 +++ sfx2/source/view/topfrm.cxx
48 @@ -913,26 +913,6 @@ sal_Bool SfxTopFrame::InsertDocument( SfxObjectShell* pDoc )
50 aMark = pMarkItem->GetValue();
52 - if ( pDoc->Get_Impl()->nLoadedFlags & SFX_LOADED_MAINDOCUMENT )
54 - if ( pViewDataItem )
55 - pFrame->GetViewShell()->ReadUserData( pViewDataItem->GetValue(), sal_True );
56 - else if( aMark.Len() )
57 - GetCurrentViewFrame()->GetViewShell()->JumpToMark( aMark );
61 - // Daten setzen, die in FinishedLoading ausgewertet werden
62 - MarkData_Impl*& rpMark = pDoc->Get_Impl()->pMarkData;
64 - rpMark = new MarkData_Impl;
65 - rpMark->pFrame = GetCurrentViewFrame();
66 - if ( pViewDataItem )
67 - rpMark->aUserData = pViewDataItem->GetValue();
69 - rpMark->aMark = aMark;
72 // Position und Groesse setzen
73 //sal_uInt16 nWinMode = pModeItem ? pModeItem->GetValue() : 1;
74 if ( pAreaItem && !pOld )
75 @@ -1000,6 +980,26 @@ sal_Bool SfxTopFrame::InsertDocument( SfxObjectShell* pDoc )
79 + if ( pDoc->Get_Impl()->nLoadedFlags & SFX_LOADED_MAINDOCUMENT )
81 + if ( pViewDataItem )
82 + pFrame->GetViewShell()->ReadUserData( pViewDataItem->GetValue(), sal_True );
83 + else if( aMark.Len() )
84 + GetCurrentViewFrame()->GetViewShell()->JumpToMark( aMark );
88 + // Daten setzen, die in FinishedLoading ausgewertet werden
89 + MarkData_Impl*& rpMark = pDoc->Get_Impl()->pMarkData;
91 + rpMark = new MarkData_Impl;
92 + rpMark->pFrame = GetCurrentViewFrame();
93 + if ( pViewDataItem )
94 + rpMark->aUserData = pViewDataItem->GetValue();
96 + rpMark->aMark = aMark;
99 // Jetzt UpdateTitle, hidden TopFrames haben sonst keinen Namen!
100 pFrame->UpdateTitle();