[Libreoffice-commits] core.git: sc/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Sat Jul 25 16:44:43 UTC 2020


 sc/source/ui/view/prevwsh.cxx |   19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

New commits:
commit e3b695f6a1525ac6b32abd27a6368a7e8b7d09fa
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Sat Jul 25 18:55:18 2020 +0300
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Sat Jul 25 18:44:03 2020 +0200

    tdf#130559: don't fail creation of preview when BackingComp can't add...
    
    an event listener. This crashes when loading a document with print preview
    set as active view.
    
    Regression after commit 128ecffe53394c1f045521c2efb42ea03a319f4b.
    
    Change-Id: I5dc421f7c08dd70d51772fac5432f33cd9a1491a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99442
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/sc/source/ui/view/prevwsh.cxx b/sc/source/ui/view/prevwsh.cxx
index 86986ee99fb6..c5d0f14e6ca1 100644
--- a/sc/source/ui/view/prevwsh.cxx
+++ b/sc/source/ui/view/prevwsh.cxx
@@ -154,10 +154,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)


More information about the Libreoffice-commits mailing list