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

Miklos Vajna vmiklos at collabora.co.uk
Wed Jun 15 15:51:04 UTC 2016


 sc/source/ui/view/tabcont.cxx  |   13 ++++++++++---
 sd/source/ui/view/drviews1.cxx |   15 ++++++++++++---
 2 files changed, 22 insertions(+), 6 deletions(-)

New commits:
commit 50787b48a8378a555a71cc2c6b0966debb2e5104
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Jun 15 16:30:15 2016 +0200

    sc, sd: add per-view support to recently added LOK_CALLBACK_SET_PART calls
    
    These caushed an assertion failure when opening a Calc or Impress
    document in gtktiledviewer.
    
    Change-Id: If9cf1ef6c5a9d8e1b0d578b20dd3f513989b669b
    Reviewed-on: https://gerrit.libreoffice.org/26311
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>

diff --git a/sc/source/ui/view/tabcont.cxx b/sc/source/ui/view/tabcont.cxx
index f61e32a..dbc4af7 100644
--- a/sc/source/ui/view/tabcont.cxx
+++ b/sc/source/ui/view/tabcont.cxx
@@ -35,6 +35,7 @@
 #include "markdata.hxx"
 #include <gridwin.hxx>
 #include <LibreOfficeKit/LibreOfficeKitEnums.h>
+#include <comphelper/lok.hxx>
 
 ScTabControl::ScTabControl( vcl::Window* pParent, ScViewData* pData )
     : TabBar(pParent, WB_3DLOOK | WB_MINSCROLL | WB_SCROLL | WB_RANGESELECT | WB_MULTISELECT | WB_DRAG)
@@ -414,9 +415,15 @@ void ScTabControl::SwitchToPageId(sal_uInt16 nId)
                 SelectPage( i, i==nId );
             Select();
 
-            // notify LibreOfficeKit about changed page
-            OString aPayload = OString::number(nId - 1);
-            pViewData->GetDocument()->GetDrawLayer()->libreOfficeKitCallback(LOK_CALLBACK_SET_PART, aPayload.getStr());
+            if (comphelper::LibreOfficeKit::isActive())
+            {
+                // notify LibreOfficeKit about changed page
+                OString aPayload = OString::number(nId - 1);
+                if (comphelper::LibreOfficeKit::isViewCallback())
+                    pViewData->GetViewShell()->libreOfficeKitViewCallback(LOK_CALLBACK_SET_PART, aPayload.getStr());
+                else
+                    pViewData->GetDocument()->GetDrawLayer()->libreOfficeKitCallback(LOK_CALLBACK_SET_PART, aPayload.getStr());
+            }
         }
     }
 }
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
index b120be8..b2711f2 100644
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -925,9 +925,18 @@ bool DrawViewShell::SwitchPage(sal_uInt16 nSelectedPage)
         // never at a masterpage)
         GetDoc()->SetSelected(mpActualPage, true);
 
-        // notify LibreOfficeKit about changed page
-        OString aPayload = OString::number(nSelectedPage);
-        GetDoc()->libreOfficeKitCallback(LOK_CALLBACK_SET_PART, aPayload.getStr());
+        if (comphelper::LibreOfficeKit::isActive())
+        {
+            // notify LibreOfficeKit about changed page
+            OString aPayload = OString::number(nSelectedPage);
+            if (comphelper::LibreOfficeKit::isViewCallback())
+            {
+                if (SfxViewShell* pViewShell = GetViewShell())
+                    pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_SET_PART, aPayload.getStr());
+            }
+            else
+                GetDoc()->libreOfficeKitCallback(LOK_CALLBACK_SET_PART, aPayload.getStr());
+        }
 
         rtl::Reference< sd::SlideShow > xSlideshow( SlideShow::GetSlideShow( GetDoc() ) );
         if( !xSlideshow.is() || !xSlideshow->isRunning() || ( xSlideshow->getAnimationMode() != ANIMATIONMODE_SHOW ) )


More information about the Libreoffice-commits mailing list