diff options
-rw-r--r-- | sc/source/ui/view/prevwsh.cxx | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/sc/source/ui/view/prevwsh.cxx b/sc/source/ui/view/prevwsh.cxx index fe3688abdd43..54187748819f 100644 --- a/sc/source/ui/view/prevwsh.cxx +++ b/sc/source/ui/view/prevwsh.cxx @@ -153,10 +153,21 @@ ScPreviewShell::ScPreviewShell( SfxViewFrame* pViewFrame, { Construct( &pViewFrame->GetWindow() ); - SfxShell::SetContextBroadcasterEnabled(true); - SfxShell::SetContextName(vcl::EnumContext::GetContextName(vcl::EnumContext::Context::Printpreview)); - SfxShell::BroadcastContextForActivation(true); - + try + { + SfxShell::SetContextBroadcasterEnabled(true); + SfxShell::SetContextName( + vcl::EnumContext::GetContextName(vcl::EnumContext::Context::Printpreview)); + SfxShell::BroadcastContextForActivation(true); + } + catch (const css::uno::RuntimeException& e) + { + // tdf#130559: allow BackingComp to fail adding listener when opening document + css::uno::Reference<css::lang::XServiceInfo> xServiceInfo(e.Context, css::uno::UNO_QUERY); + if (!xServiceInfo || !xServiceInfo->supportsService("com.sun.star.frame.StartModule")) + throw; + SAL_WARN("sc.ui", "Opening file from StartModule straight into print preview"); + } auto& pNotebookBar = pViewFrame->GetWindow().GetSystemWindow()->GetNotebookBar(); if (pNotebookBar) |