[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.1' - 8 commits - desktop/qa desktop/source framework/source include/LibreOfficeKit include/sal include/sfx2 libreofficekit/source sc/Module_sc.mk sc/qa sc/source sd/source sfx2/source sw/inc sw/qa sw/source

Miklos Vajna vmiklos at collabora.co.uk
Thu Jul 21 08:14:26 UTC 2016


 desktop/qa/desktop_lib/test_desktop_lib.cxx    |    4 -
 desktop/source/lib/init.cxx                    |   18 +++--
 framework/source/dispatch/dispatchdisabler.cxx |    2 
 include/LibreOfficeKit/LibreOfficeKit.h        |    8 +-
 include/LibreOfficeKit/LibreOfficeKitEnums.h   |   17 +++++
 include/sal/log-areas.dox                      |    1 
 include/sfx2/lokhelper.hxx                     |    9 +-
 include/sfx2/objsh.hxx                         |    7 --
 libreofficekit/source/gtk/lokdocview.cxx       |   63 ++++++++++++++++---
 sc/Module_sc.mk                                |    7 +-
 sc/qa/unit/tiledrendering/tiledrendering.cxx   |   79 +++++++++++++++++++------
 sc/source/ui/docshell/docsh.cxx                |    4 -
 sc/source/ui/inc/docsh.hxx                     |    2 
 sc/source/ui/view/gridwin.cxx                  |    3 
 sd/source/ui/docshell/docshell.cxx             |    4 -
 sd/source/ui/inc/DrawDocShell.hxx              |    2 
 sfx2/source/doc/objcont.cxx                    |    5 -
 sfx2/source/view/lokhelper.cxx                 |   35 ++++++++---
 sw/inc/docsh.hxx                               |    2 
 sw/qa/extras/tiledrendering/tiledrendering.cxx |   49 +++++++++++++++
 sw/source/core/crsr/viscrs.cxx                 |    4 -
 sw/source/uibase/app/docsh.cxx                 |    4 -
 22 files changed, 238 insertions(+), 91 deletions(-)

New commits:
commit aac2c25b2396e8df3fd6ae072c22dbe57d1cd33d
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Jul 1 15:04:55 2016 +0200

    sc: add LOK_CALLBACK_CELL_VIEW_CURSOR testcase
    
    Fails with the sc/source part of commit (sc lok: add
    LOK_CALLBACK_CELL_VIEW_CURSOR, 2016-07-01) reverted.
    
    Reviewed-on: https://gerrit.libreoffice.org/26856
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit e3c36c789f481b855c0fb556a09f4b81401ed3db)
    
     Conflicts:
    	sc/qa/unit/tiledrendering/tiledrendering.cxx
    
    Change-Id: I4a1a7d97b744dd089fe15bd58af6cca5e0b79e8f

diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx
index a5fe1ab6..46b85e6 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx
@@ -12,7 +12,6 @@
 #include <test/xmltesttools.hxx>
 #include <boost/property_tree/json_parser.hpp>
 
-#define LOK_USE_UNSTABLE_API
 #include <LibreOfficeKit/LibreOfficeKitEnums.h>
 #include <com/sun/star/frame/Desktop.hpp>
 #include <comphelper/dispatchcommand.hxx>
@@ -28,6 +27,7 @@
 #include <svl/srchitem.hxx>
 
 #include <comphelper/lok.hxx>
+#include <sfx2/lokhelper.hxx>
 
 #include <tabvwsh.hxx>
 #include <docsh.hxx>
@@ -36,7 +36,10 @@
 
 using namespace css;
 
-static const char* DATA_DIRECTORY = "/sc/qa/unit/tiledrendering/data/";
+namespace
+{
+
+const char* DATA_DIRECTORY = "/sc/qa/unit/tiledrendering/data/";
 
 class ScTiledRenderingTest : public test::BootstrapFixture, public unotest::MacrosTest, public XmlTestTools
 {
@@ -49,12 +52,14 @@ public:
     void testSortAscendingDescending();
     void testPartHash();
     void testDocumentSize();
+    void testViewCursors();
 
     CPPUNIT_TEST_SUITE(ScTiledRenderingTest);
     CPPUNIT_TEST(testRowColumnSelections);
     CPPUNIT_TEST(testSortAscendingDescending);
     CPPUNIT_TEST(testPartHash);
     CPPUNIT_TEST(testDocumentSize);
+    CPPUNIT_TEST(testViewCursors);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -325,6 +330,63 @@ void ScTiledRenderingTest::testDocumentSize()
     comphelper::LibreOfficeKit::setActive(false);
 }
 
+class ViewCallback
+{
+public:
+    bool m_bOwnCursorInvalidated;
+    bool m_bViewCursorInvalidated;
+
+    ViewCallback()
+        : m_bOwnCursorInvalidated(false),
+          m_bViewCursorInvalidated(false)
+    {
+    }
+
+    static void callback(int nType, const char* pPayload, void* pData)
+    {
+        static_cast<ViewCallback*>(pData)->callbackImpl(nType, pPayload);
+    }
+
+    void callbackImpl(int nType, const char* /*pPayload*/)
+    {
+        switch (nType)
+        {
+        case LOK_CALLBACK_CELL_CURSOR:
+        {
+            m_bOwnCursorInvalidated = true;
+        }
+        break;
+        case LOK_CALLBACK_CELL_VIEW_CURSOR:
+        {
+            m_bViewCursorInvalidated = true;
+        }
+        break;
+        }
+    }
+};
+
+
+void ScTiledRenderingTest::testViewCursors()
+{
+    comphelper::LibreOfficeKit::setActive();
+
+    ScModelObj* pModelObj = createDoc("select-row-cols.ods");
+    ViewCallback aView1;
+    SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView1);
+    SfxLokHelper::createView();
+    ViewCallback aView2;
+    SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView2);
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::DOWN);
+    pModelObj->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::DOWN);
+    Scheduler::ProcessEventsToIdle();
+    SfxLokHelper::destroyView(SfxLokHelper::getView());
+    CPPUNIT_ASSERT(aView1.m_bViewCursorInvalidated);
+
+    comphelper::LibreOfficeKit::setActive(false);
+}
+
+}
+
 CPPUNIT_TEST_SUITE_REGISTRATION(ScTiledRenderingTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
commit ebdab327c911e84ca4325d3216cd3a0cd204dff6
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Jul 1 12:00:44 2016 +0200

    CppunitTest_sc_tiledrendering: replace ifdefs with a single makefile condition
    
    Reviewed-on: https://gerrit.libreoffice.org/26849
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit 8e3451c096987e6fc7eaca409fd45a62e13ae4c5)
    
    Conflicts:
    	sc/qa/unit/tiledrendering/tiledrendering.cxx
    
    Change-Id: I1dded11e0572dee7cd917a1aa8c2e2ca53b81d84

diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index e135e30..438b861 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -47,9 +47,14 @@ $(eval $(call gb_Module_add_check_targets,sc,\
 	CppunitTest_sc_filters_test \
 	CppunitTest_sc_rangelst_test \
 	CppunitTest_sc_core \
-	CppunitTest_sc_tiledrendering \
 ))
 
+ifeq ($(OS),LINUX)
+$(eval $(call gb_Module_add_check_targets,sc,\
+    CppunitTest_sc_tiledrendering \
+))
+endif
+
 $(eval $(call gb_Module_add_slowcheck_targets,sc, \
 	CppunitTest_sc_condformats \
 	CppunitTest_sc_new_cond_format_api \
diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx
index ea042d8..a5fe1ab6 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx
@@ -36,9 +36,7 @@
 
 using namespace css;
 
-#if !defined(WNT) && !defined(MACOSX)
 static const char* DATA_DIRECTORY = "/sc/qa/unit/tiledrendering/data/";
-#endif
 
 class ScTiledRenderingTest : public test::BootstrapFixture, public unotest::MacrosTest, public XmlTestTools
 {
@@ -47,42 +45,32 @@ public:
     virtual void setUp() SAL_OVERRIDE;
     virtual void tearDown() SAL_OVERRIDE;
 
-#if !defined(WNT) && !defined(MACOSX)
     void testRowColumnSelections();
     void testSortAscendingDescending();
     void testPartHash();
     void testDocumentSize();
-#endif
 
     CPPUNIT_TEST_SUITE(ScTiledRenderingTest);
-#if !defined(WNT) && !defined(MACOSX)
     CPPUNIT_TEST(testRowColumnSelections);
     CPPUNIT_TEST(testSortAscendingDescending);
     CPPUNIT_TEST(testPartHash);
     CPPUNIT_TEST(testDocumentSize);
-#endif
     CPPUNIT_TEST_SUITE_END();
 
 private:
-#if !defined(WNT) && !defined(MACOSX)
     ScModelObj* createDoc(const char* pName);
     static void callback(int nType, const char* pPayload, void* pData);
     void callbackImpl(int nType, const char* pPayload);
 
     /// document size changed callback.
     osl::Condition m_aDocSizeCondition;
-#endif
 
     uno::Reference<lang::XComponent> mxComponent;
-#if !defined(WNT) && !defined(MACOSX)
     // TODO various test-related members - when needed
-#endif
 };
 
 ScTiledRenderingTest::ScTiledRenderingTest()
-#if !defined(WNT) && !defined(MACOSX)
     // TODO various test-related members - when needed
-#endif
 {
 }
 
@@ -101,7 +89,6 @@ void ScTiledRenderingTest::tearDown()
     test::BootstrapFixture::tearDown();
 }
 
-#if !defined(WNT) && !defined(MACOSX)
 ScModelObj* ScTiledRenderingTest::createDoc(const char* pName)
 {
     if (mxComponent.is())
@@ -338,8 +325,6 @@ void ScTiledRenderingTest::testDocumentSize()
     comphelper::LibreOfficeKit::setActive(false);
 }
 
-#endif
-
 CPPUNIT_TEST_SUITE_REGISTRATION(ScTiledRenderingTest);
 
 CPPUNIT_PLUGIN_IMPLEMENT();
commit 47d95f1166a2d2855e9a1fe3c9810bed6c2f0831
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Fri Jul 1 10:55:27 2016 +0200

    sc lok: add LOK_CALLBACK_CELL_VIEW_CURSOR
    
    So a view can be aware where the cell cursors of other views are.
    
    Change-Id: Ifcf06c0019c6af8b859e2e92222e4f3fd18da74f
    Reviewed-on: https://gerrit.libreoffice.org/26844
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit 68c5c0bb7eed007bbfbb2e51107fc0196825e85a)

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 1d14d75..e8df4df 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -478,6 +478,7 @@ CallbackFlushHandler::CallbackFlushHandler(LibreOfficeKitDocument* pDocument, Li
     m_states.emplace(LOK_CALLBACK_STATE_CHANGED, "NIL");
     m_states.emplace(LOK_CALLBACK_MOUSE_POINTER, "NIL");
     m_states.emplace(LOK_CALLBACK_CELL_CURSOR, "NIL");
+    m_states.emplace(LOK_CALLBACK_CELL_VIEW_CURSOR, "NIL");
     m_states.emplace(LOK_CALLBACK_CELL_FORMULA, "NIL");
     m_states.emplace(LOK_CALLBACK_CURSOR_VISIBLE, "NIL");
     m_states.emplace(LOK_CALLBACK_SET_PART, "NIL");
@@ -580,6 +581,7 @@ void CallbackFlushHandler::queue(const int type, const char* data)
         case LOK_CALLBACK_GRAPHIC_SELECTION:
         case LOK_CALLBACK_MOUSE_POINTER:
         case LOK_CALLBACK_CELL_CURSOR:
+        case LOK_CALLBACK_CELL_VIEW_CURSOR:
         case LOK_CALLBACK_CELL_FORMULA:
         case LOK_CALLBACK_CURSOR_VISIBLE:
         case LOK_CALLBACK_SET_PART:
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index 4dfb8be..c687879 100644
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -329,7 +329,7 @@ typedef enum
     LOK_CALLBACK_INVALIDATE_VIEW_CURSOR,
 
     /**
-     * The the text selection in one of the other views has changed.
+     * The text selection in one of the other views has changed.
      *
      * The payload format:
      *
@@ -343,6 +343,21 @@ typedef enum
      */
     LOK_CALLBACK_TEXT_VIEW_SELECTION,
 
+    /**
+     * The cell cursor in one of the other views has changed.
+     *
+     * The payload format:
+     *
+     * {
+     *     "viewId": "..."
+     *     "rectangle": "..."
+     * }
+     *
+     * - viewId is a value returned earlier by lok::Document::createView()
+     * - rectangle uses the format of LOK_CALLBACK_CELL_CURSOR.
+     */
+    LOK_CALLBACK_CELL_VIEW_CURSOR,
+
 }
 LibreOfficeKitCallbackType;
 
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index e36a1c3..c79e098 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -102,6 +102,9 @@ struct LOKDocViewPrivateImpl
     GdkRectangle m_aTextSelectionEnd;
     GdkRectangle m_aGraphicSelection;
     GdkRectangle m_aCellCursor;
+    /// Position and size of the cell view cursors. The current view can only
+    //see / them, can't modify them. Key is the view id.
+    std::map<int, GdkRectangle> m_aCellViewCursors;
     gboolean m_bInDragGraphicSelection;
 
     /// @name Start/middle/end handle.
@@ -355,7 +358,12 @@ callbackTypeToString (int nType)
         return "LOK_CALLBACK_INVALIDATE_VIEW_CURSOR";
     case LOK_CALLBACK_TEXT_VIEW_SELECTION:
         return "LOK_CALLBACK_TEXT_VIEW_SELECTION";
+    case LOK_CALLBACK_CELL_VIEW_CURSOR:
+        return "LOK_CALLBACK_CELL_VIEW_CURSOR";
+    case LOK_CALLBACK_CELL_FORMULA:
+        return "LOK_CALLBACK_CELL_FORMULA";
     }
+    g_assert(false);
     return nullptr;
 }
 
@@ -1187,6 +1195,24 @@ callback (gpointer pData)
         gtk_widget_queue_draw(GTK_WIDGET(pDocView));
         break;
     }
+    case LOK_CALLBACK_CELL_VIEW_CURSOR:
+    {
+        std::stringstream aStream(pCallback->m_aPayload);
+        boost::property_tree::ptree aTree;
+        boost::property_tree::read_json(aStream, aTree);
+        int nViewId = aTree.get<int>("viewId");
+        const std::string& rRectangle = aTree.get<std::string>("rectangle");
+        if (rRectangle != "EMPTY")
+            priv->m_aCellViewCursors[nViewId] = payloadToRectangle(pDocView, rRectangle.c_str());
+        else
+        {
+            auto it = priv->m_aCellViewCursors.find(nViewId);
+            if (it != priv->m_aCellViewCursors.end())
+                priv->m_aCellViewCursors.erase(it);
+        }
+        gtk_widget_queue_draw(GTK_WIDGET(pDocView));
+        break;
+    }
     default:
         g_assert(false);
         break;
@@ -1574,6 +1600,7 @@ renderOverlay(LOKDocView* pDocView, cairo_t* pCairo)
         g_free (handleGraphicPath);
     }
 
+    // Draw the cell cursor.
     if (!isEmptyRectangle(priv->m_aCellCursor))
     {
         cairo_set_source_rgb(pCairo, 0, 0, 0);
@@ -1590,6 +1617,22 @@ renderOverlay(LOKDocView* pDocView, cairo_t* pCairo)
         cairo_stroke(pCairo);
     }
 
+    // Cell view cursors: they are colored.
+    for (auto& rPair : priv->m_aCellViewCursors)
+    {
+        GdkRectangle& rCursor = rPair.second;
+
+        const GdkRGBA& rDark = getDarkColor(rPair.first);
+        cairo_set_source_rgb(pCairo, rDark.red, rDark.green, rDark.blue);
+        cairo_rectangle(pCairo,
+                        twipToPixel(rCursor.x, priv->m_fZoom),
+                        twipToPixel(rCursor.y, priv->m_fZoom),
+                        twipToPixel(rCursor.width, priv->m_fZoom),
+                        twipToPixel(rCursor.height, priv->m_fZoom));
+        cairo_set_line_width(pCairo, 2.0);
+        cairo_stroke(pCairo);
+    }
+
     return FALSE;
 }
 
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index e279da2..4e6d9c6 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -136,6 +136,7 @@
 #include <svx/sdr/overlay/overlayselection.hxx>
 #include <comphelper/string.hxx>
 #include <comphelper/lok.hxx>
+#include <sfx2/lokhelper.hxx>
 
 #include <LibreOfficeKit/LibreOfficeKitEnums.h>
 #include <comphelper/lok.hxx>
@@ -5853,6 +5854,7 @@ void ScGridWindow::updateLibreOfficeKitCellCursor()
     OString aCursor = getCellCursor(pViewData->GetZoomX(), pViewData->GetZoomY());
     ScTabViewShell* pViewShell = pViewData->GetViewShell();
     pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_CURSOR, aCursor.getStr());
+    SfxLokHelper::notifyOtherViews(pViewShell, LOK_CALLBACK_CELL_VIEW_CURSOR, "rectangle", aCursor);
 }
 
 void ScGridWindow::CursorChanged()
@@ -5897,6 +5899,7 @@ void ScGridWindow::DeleteCursorOverlay()
 {
     ScTabViewShell* pViewShell = pViewData->GetViewShell();
     pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_CELL_CURSOR, "EMPTY");
+    SfxLokHelper::notifyOtherViews(pViewShell, LOK_CALLBACK_CELL_VIEW_CURSOR, "rectangle", "EMPTY");
     mpOOCursors.reset();
 }
 
commit 0c93c4b9788dd3746a43556ea683465b16d5660a
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Jun 30 12:40:49 2016 +0200

    sw lok: mix missing invalidation due to page calc in visible cursor change
    
    Steps to reproduce in gtktiledviewer:
    
    - two windows, then enable edit in both
    - view #0: go inside a word
    - view #1: select the same word
    - press Del in view #1 -> no invalidation
    
    Fix the problem by changing the LOK-specific GetPageNum() call in
    SwVisibleCursor::SetPosAndShow(), so that it doesn't re-calculate the
    frame, that way later when SwLayAction::TurboAction_() attempts to
    re-calculate the layout, then the frame will be still invalid, and that
    re-calculation then triggers the necessary invalidations.
    
    Change-Id: I8c4472b9809537fcbd4a20c73f39be7ebca16b1f
    Reviewed-on: https://gerrit.libreoffice.org/26802
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit 6168f10b6280b2d60de44a333f3f1dc23cbb9bcf)

diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 6998023..e43d0717 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -53,6 +53,7 @@ public:
     void testPageDownInvalidation();
     void testPartHash();
     void testViewCursors();
+    void testMissingInvalidation();
 
     CPPUNIT_TEST_SUITE(SwTiledRenderingTest);
     CPPUNIT_TEST(testRegisterCallback);
@@ -72,6 +73,7 @@ public:
     CPPUNIT_TEST(testPageDownInvalidation);
     CPPUNIT_TEST(testPartHash);
     CPPUNIT_TEST(testViewCursors);
+    CPPUNIT_TEST(testMissingInvalidation);
     CPPUNIT_TEST_SUITE_END();
 
 private:
@@ -551,12 +553,14 @@ public:
     bool m_bViewCursorInvalidated;
     bool m_bOwnSelectionSet;
     bool m_bViewSelectionSet;
+    bool m_bTilesInvalidated;
 
     ViewCallback()
         : m_bOwnCursorInvalidated(false),
           m_bViewCursorInvalidated(false),
           m_bOwnSelectionSet(false),
-          m_bViewSelectionSet(false)
+          m_bViewSelectionSet(false),
+          m_bTilesInvalidated(false)
     {
     }
 
@@ -569,6 +573,11 @@ public:
     {
         switch (nType)
         {
+        case LOK_CALLBACK_INVALIDATE_TILES:
+        {
+            m_bTilesInvalidated = true;
+        }
+        break;
         case LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR:
         {
             m_bOwnCursorInvalidated = true;
@@ -593,6 +602,44 @@ public:
     }
 };
 
+void SwTiledRenderingTest::testMissingInvalidation()
+{
+    comphelper::LibreOfficeKit::setActive();
+
+    // Create two views.
+    SwXTextDocument* pXTextDocument = createDoc("dummy.fodt");
+    ViewCallback aView1;
+    SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView1);
+    int nView1 = SfxLokHelper::getView();
+    SfxLokHelper::createView();
+    ViewCallback aView2;
+    SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView2);
+    int nView2 = SfxLokHelper::getView();
+
+    // First view: put the cursor into the first word.
+    SfxLokHelper::setView(nView1);
+    SwWrtShell* pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell();
+    pWrtShell->Right(CRSR_SKIP_CHARS, /*bSelect=*/false, 1, /*bBasicCall=*/false);
+
+    // Second view: select the first word.
+    SfxLokHelper::setView(nView2);
+    CPPUNIT_ASSERT(pXTextDocument->GetDocShell()->GetWrtShell() != pWrtShell);
+    pWrtShell = pXTextDocument->GetDocShell()->GetWrtShell();
+    pWrtShell->Right(CRSR_SKIP_CHARS, /*bSelect=*/false, 1, /*bBasicCall=*/false);
+    pWrtShell->SelWrd();
+
+    // Now delete the selected word and make sure both views are invalidated.
+    aView1.m_bTilesInvalidated = false;
+    aView2.m_bTilesInvalidated = false;
+    pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 0, awt::Key::DELETE);
+    pXTextDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 0, awt::Key::DELETE);
+    Scheduler::ProcessEventsToIdle();
+    CPPUNIT_ASSERT(aView1.m_bTilesInvalidated);
+    CPPUNIT_ASSERT(aView2.m_bTilesInvalidated);
+
+    comphelper::LibreOfficeKit::setActive(false);
+}
+
 void SwTiledRenderingTest::testViewCursors()
 {
     comphelper::LibreOfficeKit::setActive();
diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx
index 585a0f4..2c0ca9e 100644
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@ -186,7 +186,9 @@ void SwVisibleCursor::_SetPosAndShow()
     {
         // notify about page number change (if that happened)
         sal_uInt16 nPage, nVirtPage;
-        const_cast<SwCursorShell*>(m_pCursorShell)->GetPageNum(nPage, nVirtPage);
+        // bCalcFrame=false is important to avoid calculating the layout when
+        // we're in the middle of doing that already.
+        const_cast<SwCursorShell*>(m_pCursorShell)->GetPageNum(nPage, nVirtPage, /*bAtCursorPos=*/true, /*bCalcFrame=*/false);
         if (nPage != m_nPageLastTime)
         {
             m_nPageLastTime = nPage;
commit 8e739f68cc863107e9782f1453f2c6370c6874ec
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Jun 30 09:13:52 2016 +0200

    lokdocview: avoid pointless setView() before getView()
    
    This fixes the following use-case:
    
    1) Start gtktiledviewer, click New View
    2) Click Edit in the first view
    3) Click somewhere in the document in the first view -> nothing happens
    
    Change-Id: I79d63538607f03b78851a639adf158d918745276
    Reviewed-on: https://gerrit.libreoffice.org/26789
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit bfd4234fd863ee75f4f07d9bded061063bbde3d4)

diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index e1eca74..e36a1c3 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -842,10 +842,6 @@ static gboolean postDocumentLoad(gpointer pData)
     LOKDocViewPrivate& priv = getPrivate(pLOKDocView);
 
     std::unique_lock<std::mutex> aGuard(g_aLOKMutex);
-    std::stringstream ss;
-    ss << "lok::Document::setView(" << priv->m_nViewId << ")";
-    g_info("%s", ss.str().c_str());
-    priv->m_pDocument->pClass->setView(priv->m_pDocument, priv->m_nViewId);
     priv->m_pDocument->pClass->initializeForRendering(priv->m_pDocument, priv->m_aRenderingArguments.c_str());
     priv->m_nViewId = priv->m_pDocument->pClass->getView(priv->m_pDocument);
     priv->m_pDocument->pClass->registerCallback(priv->m_pDocument, callbackWorker, pLOKDocView);
commit 87251b0c5d769020a8469064a7e4be9c36a5f1ee
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Jun 29 17:27:04 2016 +0200

    LOK: change back type of view ids to int
    
    Commit 45c2410041c48c22bd860efb42d4daadad7869b0 (LOK: change type of
    view ids to uintptr_t, 2016-06-17) fixed the problem of view IDs being
    reused for the price of random IDs, which makes debugging harder.
    
    Implement a simple shellToView() function that makes sure view IDs are
    not reused, and stop exposing view shell pointer addresses, which allows
    reverting the LOK API change.
    
    Change-Id: I63089e6de08ee7e1c7706757d43a11f6cf4d6e06
    Reviewed-on: https://gerrit.libreoffice.org/26773
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit 615c37503cffa92a663245d7cb140f316ace0506)

diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx
index f59370b..74a75ed 100644
--- a/desktop/qa/desktop_lib/test_desktop_lib.cxx
+++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx
@@ -294,8 +294,8 @@ void DesktopLOKTest::testCreateView()
     LibLODocument_Impl* pDocument = loadDoc("blank_text.odt");
     CPPUNIT_ASSERT_EQUAL(1, pDocument->m_pDocumentClass->getViews(pDocument));
 
-    std::uintptr_t nId0 = pDocument->m_pDocumentClass->getView(pDocument);
-    std::uintptr_t nId1 = pDocument->m_pDocumentClass->createView(pDocument);
+    int nId0 = pDocument->m_pDocumentClass->getView(pDocument);
+    int nId1 = pDocument->m_pDocumentClass->createView(pDocument);
     CPPUNIT_ASSERT_EQUAL(2, pDocument->m_pDocumentClass->getViews(pDocument));
 
     // Make sure the created view is the active one, then switch to the old
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 6f7df98..1d14d75 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -392,10 +392,10 @@ static void doc_setClientZoom(LibreOfficeKitDocument* pThis,
                                     int nTileTwipWidth,
                                     int nTileTwipHeight);
 static void doc_setClientVisibleArea(LibreOfficeKitDocument* pThis, int nX, int nY, int nWidth, int nHeight);
-static uintptr_t doc_createView(LibreOfficeKitDocument* pThis);
-static void doc_destroyView(LibreOfficeKitDocument* pThis, uintptr_t nId);
-static void doc_setView(LibreOfficeKitDocument* pThis, uintptr_t nId);
-static uintptr_t doc_getView(LibreOfficeKitDocument* pThis);
+static int doc_createView(LibreOfficeKitDocument* pThis);
+static void doc_destroyView(LibreOfficeKitDocument* pThis, int nId);
+static void doc_setView(LibreOfficeKitDocument* pThis, int nId);
+static int doc_getView(LibreOfficeKitDocument* pThis);
 static int doc_getViews(LibreOfficeKitDocument* pThis);
 static unsigned char* doc_renderFont(LibreOfficeKitDocument* pThis,
                           const char *pFontName,
@@ -1937,28 +1937,28 @@ static void doc_setClientVisibleArea(LibreOfficeKitDocument* pThis, int nX, int
     pDoc->setClientVisibleArea(aRectangle);
 }
 
-static uintptr_t doc_createView(LibreOfficeKitDocument* /*pThis*/)
+static int doc_createView(LibreOfficeKitDocument* /*pThis*/)
 {
     SolarMutexGuard aGuard;
 
     return SfxLokHelper::createView();
 }
 
-static void doc_destroyView(LibreOfficeKitDocument* /*pThis*/, uintptr_t nId)
+static void doc_destroyView(LibreOfficeKitDocument* /*pThis*/, int nId)
 {
     SolarMutexGuard aGuard;
 
     SfxLokHelper::destroyView(nId);
 }
 
-static void doc_setView(LibreOfficeKitDocument* /*pThis*/, uintptr_t nId)
+static void doc_setView(LibreOfficeKitDocument* /*pThis*/, int nId)
 {
     SolarMutexGuard aGuard;
 
     SfxLokHelper::setView(nId);
 }
 
-static uintptr_t doc_getView(LibreOfficeKitDocument* /*pThis*/)
+static int doc_getView(LibreOfficeKitDocument* /*pThis*/)
 {
     SolarMutexGuard aGuard;
 
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h b/include/LibreOfficeKit/LibreOfficeKit.h
index 559d28a..81d65c1 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.h
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
@@ -212,13 +212,13 @@ struct _LibreOfficeKitDocumentClass
     void (*setClientVisibleArea) (LibreOfficeKitDocument* pThis, int nX, int nY, int nWidth, int nHeight);
 
     /// @see lok::Document::createView().
-    uintptr_t (*createView) (LibreOfficeKitDocument* pThis);
+    int (*createView) (LibreOfficeKitDocument* pThis);
     /// @see lok::Document::destroyView().
-    void (*destroyView) (LibreOfficeKitDocument* pThis, uintptr_t nId);
+    void (*destroyView) (LibreOfficeKitDocument* pThis, int nId);
     /// @see lok::Document::setView().
-    void (*setView) (LibreOfficeKitDocument* pThis, uintptr_t nId);
+    void (*setView) (LibreOfficeKitDocument* pThis, int nId);
     /// @see lok::Document::getView().
-    uintptr_t (*getView) (LibreOfficeKitDocument* pThis);
+    int (*getView) (LibreOfficeKitDocument* pThis);
     /// @see lok::Document::getViews().
     int (*getViews) (LibreOfficeKitDocument* pThis);
 
diff --git a/include/sfx2/lokhelper.hxx b/include/sfx2/lokhelper.hxx
index 4cfe081..e7dfed4 100644
--- a/include/sfx2/lokhelper.hxx
+++ b/include/sfx2/lokhelper.hxx
@@ -12,7 +12,6 @@
 
 #include <sfx2/dllapi.h>
 #include <cstddef>
-#include <cstdint>
 #include <rtl/string.hxx>
 
 class SfxViewShell;
@@ -21,13 +20,13 @@ class SFX2_DLLPUBLIC SfxLokHelper
 {
 public:
     /// Create a new view shell from the current view frame.
-    static std::uintptr_t createView();
+    static int createView();
     /// Destroy a view shell from the global shell list.
-    static void destroyView(std::uintptr_t nId);
+    static void destroyView(int nId);
     /// Set a view shell as current one.
-    static void setView(std::uintptr_t nId);
+    static void setView(int nId);
     /// Get the currently active view.
-    static std::uintptr_t getView(SfxViewShell* pViewShell = nullptr);
+    static int getView(SfxViewShell* pViewShell = nullptr);
     /// Get the number of views of the current object shell.
     static std::size_t getViews();
 
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 6e2a343..e1eca74 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -78,7 +78,7 @@ struct LOKDocViewPrivateImpl
     GdkRectangle m_aVisibleCursor;
     /// Position and size of the view cursors. The current view can only see
     /// them, can't modify them. Key is the view id.
-    std::map<std::uintptr_t, GdkRectangle> m_aViewCursors;
+    std::map<int, GdkRectangle> m_aViewCursors;
     /// Cursor overlay is visible or hidden (for blinking).
     gboolean m_bCursorOverlayVisible;
     /// Cursor is visible or hidden (e.g. for graphic selection).
@@ -95,7 +95,7 @@ struct LOKDocViewPrivateImpl
     std::vector<GdkRectangle> m_aTextSelectionRectangles;
     /// Rectangles of view selections. The current view can only see
     /// them, can't modify them. Key is the view id.
-    std::map<std::uintptr_t, std::vector<GdkRectangle>> m_aTextViewSelectionRectangles;
+    std::map<int, std::vector<GdkRectangle>> m_aTextViewSelectionRectangles;
     /// Position and size of the selection start (as if there would be a cursor caret there).
     GdkRectangle m_aTextSelectionStart;
     /// Position and size of the selection end.
@@ -137,7 +137,7 @@ struct LOKDocViewPrivateImpl
     ///@}
 
     /// View ID, returned by createView() or 0 by default.
-    std::uintptr_t m_nViewId;
+    int m_nViewId;
 
     /**
      * Contains a freshly set zoom level: logic size of a tile.
@@ -1174,7 +1174,7 @@ callback (gpointer pData)
         std::stringstream aStream(pCallback->m_aPayload);
         boost::property_tree::ptree aTree;
         boost::property_tree::read_json(aStream, aTree);
-        std::uintptr_t nViewId = aTree.get<std::uintptr_t>("viewId");
+        int nViewId = aTree.get<int>("viewId");
         const std::string& rRectangle = aTree.get<std::string>("rectangle");
         priv->m_aViewCursors[nViewId] = payloadToRectangle(pDocView, rRectangle.c_str());
         gtk_widget_queue_draw(GTK_WIDGET(pDocView));
@@ -1185,7 +1185,7 @@ callback (gpointer pData)
         std::stringstream aStream(pCallback->m_aPayload);
         boost::property_tree::ptree aTree;
         boost::property_tree::read_json(aStream, aTree);
-        std::uintptr_t nViewId = aTree.get<std::uintptr_t>("viewId");
+        int nViewId = aTree.get<int>("viewId");
         const std::string& rSelection = aTree.get<std::string>("selection");
         priv->m_aTextViewSelectionRectangles[nViewId] = payloadToRectangles(pDocView, rSelection.c_str());
         gtk_widget_queue_draw(GTK_WIDGET(pDocView));
@@ -1428,9 +1428,9 @@ renderDocument(LOKDocView* pDocView, cairo_t* pCairo)
     return FALSE;
 }
 
-static const GdkRGBA& getDarkColor(std::uintptr_t nViewId)
+static const GdkRGBA& getDarkColor(int nViewId)
 {
-    static std::map<std::uintptr_t, GdkRGBA> aColorMap;
+    static std::map<int, GdkRGBA> aColorMap;
     auto it = aColorMap.find(nViewId);
     if (it != aColorMap.end())
         return it->second;
@@ -1550,7 +1550,7 @@ renderOverlay(LOKDocView* pDocView, cairo_t* pCairo)
     }
 
     // Selections of other views.
-    for (std::pair<const std::uintptr_t, std::vector<GdkRectangle>>& rPair : priv->m_aTextViewSelectionRectangles)
+    for (std::pair<const int, std::vector<GdkRectangle>>& rPair : priv->m_aTextViewSelectionRectangles)
     {
         for (GdkRectangle& rRectangle : rPair.second)
         {
diff --git a/sfx2/source/view/lokhelper.cxx b/sfx2/source/view/lokhelper.cxx
index b44392c..653dd7f 100644
--- a/sfx2/source/view/lokhelper.cxx
+++ b/sfx2/source/view/lokhelper.cxx
@@ -17,23 +17,42 @@
 
 #include <shellimpl.hxx>
 
-std::uintptr_t SfxLokHelper::createView()
+namespace
+{
+
+/// Assigns a view ID to a view shell.
+int shellToView(SfxViewShell* pViewShell)
+{
+    // Deleted view shells are not removed from this map, so view IDs are not
+    // reused when deleting, then creating a view.
+    static std::map<SfxViewShell*, int> aViewMap;
+    auto it = aViewMap.find(pViewShell);
+    if (it != aViewMap.end())
+        return it->second;
+
+    int nViewId = aViewMap.size();
+    aViewMap[pViewShell] = nViewId;
+    return nViewId;
+}
+}
+
+int SfxLokHelper::createView()
 {
     SfxViewFrame* pViewFrame = SfxViewFrame::Current();
     SfxRequest aRequest(pViewFrame, SID_NEWWINDOW);
     pViewFrame->ExecView_Impl(aRequest);
 
-    return reinterpret_cast<std::uintptr_t>(SfxViewShell::Current());
+    return shellToView(SfxViewShell::Current());
 }
 
-void SfxLokHelper::destroyView(std::uintptr_t nId)
+void SfxLokHelper::destroyView(int nId)
 {
     SfxViewShellArr_Impl& rViewArr = SfxGetpApp()->GetViewShells_Impl();
 
     for (std::size_t i = 0; i < rViewArr.size(); ++i)
     {
         SfxViewShell* pViewShell = rViewArr[i];
-        if (reinterpret_cast<std::uintptr_t>(pViewShell) == nId)
+        if (shellToView(pViewShell) == nId)
         {
             SfxViewFrame* pViewFrame = pViewShell->GetViewFrame();
             SfxRequest aRequest(pViewFrame, SID_CLOSEWIN);
@@ -43,14 +62,14 @@ void SfxLokHelper::destroyView(std::uintptr_t nId)
     }
 }
 
-void SfxLokHelper::setView(std::uintptr_t nId)
+void SfxLokHelper::setView(int nId)
 {
     SfxViewShellArr_Impl& rViewArr = SfxGetpApp()->GetViewShells_Impl();
 
     for (std::size_t i = 0; i < rViewArr.size(); ++i)
     {
         SfxViewShell* pViewShell = rViewArr[i];
-        if (reinterpret_cast<std::uintptr_t>(pViewShell) == nId)
+        if (shellToView(pViewShell) == nId)
         {
             if (pViewShell == SfxViewShell::Current())
                 return;
@@ -63,11 +82,11 @@ void SfxLokHelper::setView(std::uintptr_t nId)
 
 }
 
-std::uintptr_t SfxLokHelper::getView(SfxViewShell* pViewShell)
+int SfxLokHelper::getView(SfxViewShell* pViewShell)
 {
     if (!pViewShell)
         pViewShell = SfxViewShell::Current();
-    return reinterpret_cast<std::uintptr_t>(pViewShell);
+    return shellToView(pViewShell);
 }
 
 std::size_t SfxLokHelper::getViews()
commit 43ebf466fef79b055e4a905ab4abf18da190180a
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Jun 29 15:55:11 2016 +0200

    framework: fix typo in dispatchdisabler
    
    maDisabledURLs is a set, aDisabledURLs is a sequence, the intention is
    to copy the set into the sequence, not to copy the (empty) set into
    itself.
    
    Change-Id: Ib262e863b1f1aa4c455bd7552df3dc2c3f73a400
    Reviewed-on: https://gerrit.libreoffice.org/26765
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit f4f580f4a4683ab09c94cfd2dfa9d203881e3eb5)

diff --git a/framework/source/dispatch/dispatchdisabler.cxx b/framework/source/dispatch/dispatchdisabler.cxx
index 608b18d..5f410af 100644
--- a/framework/source/dispatch/dispatchdisabler.cxx
+++ b/framework/source/dispatch/dispatchdisabler.cxx
@@ -95,7 +95,7 @@ uno::Sequence< OUString > SAL_CALL
 {
     uno::Sequence< OUString > aDisabledURLs(maDisabledURLs.size());
     sal_Int32 n = 0;
-    for (auto i = aDisabledURLs.begin(); i != aDisabledURLs.end(); ++i)
+    for (auto i = maDisabledURLs.begin(); i != maDisabledURLs.end(); ++i)
         aDisabledURLs[n++] = *i;
     return aDisabledURLs;
 }
commit 918a02ba8ba9a35fdd2c2ea2ad6864de0c7cb7c5
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Jun 23 08:47:05 2016 +0200

    Remove unused SfxObjectShell::libreOfficeKitCallback()
    
    All clients have been converted to use
    SfxViewShell::libreOfficeKitViewCallback() instead.
    
    Change-Id: I793dad5194769f331037b12a1b1afba96ddea4ba
    Reviewed-on: https://gerrit.libreoffice.org/26584
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Jenkins <ci at libreoffice.org>
    (cherry picked from commit ed2d342e97e43ff25f450ab6a5752baded6813e4)

diff --git a/include/sal/log-areas.dox b/include/sal/log-areas.dox
index 310fb12..04ad05a 100644
--- a/include/sal/log-areas.dox
+++ b/include/sal/log-areas.dox
@@ -305,7 +305,6 @@ certain functionality.
 @li @c sfx.doc
 @li @c sfx.notify
 @li @c sfx.sidebar
- at li @c sfx.tiledrendering
 @li @c sfx.view
 
 @section slideshow
diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx
index d799846..edc3ee4 100644
--- a/include/sfx2/objsh.hxx
+++ b/include/sfx2/objsh.hxx
@@ -723,13 +723,6 @@ public:
     SAL_DLLPRIVATE void CancelCheckOut( );
     SAL_DLLPRIVATE void CheckIn( );
     SAL_DLLPRIVATE css::uno::Sequence< css::document::CmisVersion > GetCmisVersions();
-
-    /**
-     * Interface shared by document shell. Allow LOK calls from sfx.
-     * Default behavior doesn't do anything. relevant SfxObjectShells should override
-     * the default behavior and implements LOK calls.
-     */
-    virtual void libreOfficeKitCallback(int nType, const char* pPayload) const;
 };
 
 #define SFX_GLOBAL_CLASSID \
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index a2ac691..73936d6 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -3195,8 +3195,4 @@ bool ScDocShell::GetProtectionHash( /*out*/ css::uno::Sequence< sal_Int8 > &rPas
     return bRes;
 }
 
-void ScDocShell::libreOfficeKitCallback(int /*nType*/, const char* /*pPayload*/) const
-{
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
index bf228f7..7780e7d 100644
--- a/sc/source/ui/inc/docsh.hxx
+++ b/sc/source/ui/inc/docsh.hxx
@@ -422,8 +422,6 @@ public:
     virtual bool    GetProtectionHash( /*out*/ css::uno::Sequence< sal_Int8 > &rPasswordHash ) override;
 
     void SnapVisArea( Rectangle& rRect ) const;
-
-    virtual void libreOfficeKitCallback(int nType, const char* pPayload) const override;
 };
 
 void UpdateAcceptChangesDialog();
diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx
index e9afba0..4c2e87d 100644
--- a/sd/source/ui/docshell/docshell.cxx
+++ b/sd/source/ui/docshell/docshell.cxx
@@ -464,10 +464,6 @@ void DrawDocShell::ClearUndoBuffer()
         pUndoManager->Clear();
 }
 
-void DrawDocShell::libreOfficeKitCallback(int /*nType*/, const char* /*pPayload*/) const
-{
-}
-
 } // end of namespace sd
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sd/source/ui/inc/DrawDocShell.hxx b/sd/source/ui/inc/DrawDocShell.hxx
index b43f84b..b355c59 100644
--- a/sd/source/ui/inc/DrawDocShell.hxx
+++ b/sd/source/ui/inc/DrawDocShell.hxx
@@ -203,8 +203,6 @@ public:
 
     void                    ClearUndoBuffer();
 
-    virtual void libreOfficeKitCallback(int nType, const char* pPayload) const override;
-
 protected:
 
     SdDrawDocument*         mpDoc;
diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx
index bd8d904..1b5584c 100644
--- a/sfx2/source/doc/objcont.cxx
+++ b/sfx2/source/doc/objcont.cxx
@@ -652,9 +652,4 @@ bool SfxObjectShell::IsModifyPasswordEntered()
     return pImp->m_bModifyPasswordEntered;
 }
 
-void SfxObjectShell::libreOfficeKitCallback(int /*nType*/, const char* /*pPayload*/) const
-{
-    SAL_INFO("sfx.tiledrendering", "SfxObjectShell::libreOfficeKitCallback interface not overridden for SfxObjectShell subclass typeId: " << typeid(*this).name());
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/inc/docsh.hxx b/sw/inc/docsh.hxx
index 84774c17..83e4fad 100644
--- a/sw/inc/docsh.hxx
+++ b/sw/inc/docsh.hxx
@@ -308,8 +308,6 @@ public:
     virtual void    SetChangeRecording( bool bActivate ) override;
     virtual bool    SetProtectionPassword( const OUString &rPassword ) override;
     virtual bool    GetProtectionHash( /*out*/ css::uno::Sequence< sal_Int8 > &rPasswordHash ) override;
-
-    virtual void libreOfficeKitCallback(int nType, const char* pPayload) const override;
 };
 
 /** Find the right DocShell and create a new one:
diff --git a/sw/source/uibase/app/docsh.cxx b/sw/source/uibase/app/docsh.cxx
index efd8962..e112b71 100644
--- a/sw/source/uibase/app/docsh.cxx
+++ b/sw/source/uibase/app/docsh.cxx
@@ -1337,8 +1337,4 @@ bool SwDocShell::GetProtectionHash( /*out*/ css::uno::Sequence< sal_Int8 > &rPas
     return bRes;
 }
 
-void SwDocShell::libreOfficeKitCallback(int /*nType*/, const char* /*pPayload*/) const
-{
-}
-
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list