[Libreoffice-commits] core.git: sw/qa sw/source

Miklos Vajna vmiklos at collabora.co.uk
Thu Sep 22 11:53:17 UTC 2016


 sw/qa/extras/tiledrendering/tiledrendering.cxx |    8 +++++++-
 sw/source/core/crsr/crsrsh.cxx                 |    8 +++++++-
 sw/source/core/crsr/viscrs.cxx                 |    3 ---
 3 files changed, 14 insertions(+), 5 deletions(-)

New commits:
commit e387193eab0e4729d02b6ffd2c972c3d71942947
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Thu Sep 22 10:52:45 2016 +0200

    sw: move LOK_CALLBACK_VIEW_CURSOR_VISIBLE to SwCursorShell
    
    That's where the non-view variant is emitted, and SwVisibleCursor
    said visibility=false even if the cursor was expected to be
    visible.
    
    Also fix the test callback that checked if the payload is equal to the
    "true" literal, but actually the payload was a JSON.
    
    Change-Id: Ifa0e23eb274925e8ab8ef5e7c21370ad2cd22282

diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 9d9a100..1e1a6bb 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -706,7 +706,10 @@ public:
         break;
         case LOK_CALLBACK_VIEW_CURSOR_VISIBLE:
         {
-            m_bViewCursorVisible = OString("true") == pPayload;
+            std::stringstream aStream(pPayload);
+            boost::property_tree::ptree aTree;
+            boost::property_tree::read_json(aStream, aTree);
+            m_bViewCursorVisible = aTree.get_child("visible").get_value<std::string>() == "true";
         }
         break;
         case LOK_CALLBACK_GRAPHIC_VIEW_SELECTION:
@@ -870,6 +873,8 @@ void SwTiledRenderingTest::testViewCursorVisibility()
     pXTextDocument->initializeForTiledRendering(uno::Sequence<beans::PropertyValue>());
     ViewCallback aView2;
     SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView2);
+    // This failed, initially the view cursor in the second view wasn't visible.
+    CPPUNIT_ASSERT(aView2.m_bViewCursorVisible);
 
     // Click on the shape in the second view.
     aView1.m_bViewCursorVisible = true;
@@ -1373,6 +1378,7 @@ void SwTiledRenderingTest::testCreateViewGraphicSelection()
     SdrView* pView = pWrtShell->GetDrawView();
     aView1.m_bGraphicSelection = true;
     pView->MarkObj(pObject, pView->GetSdrPageView());
+    pWrtShell->HideCursor();
     CPPUNIT_ASSERT(aView1.m_bGraphicSelection);
 
     // Create a second view.
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index d0ffa27..d91d954 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -1215,8 +1215,14 @@ void SwCursorShell::NotifyCursor(SfxViewShell* pOtherShell) const
     }
     else
     {
-        // Cursor position and visibility.
+        // Cursor position.
         m_pVisibleCursor->SetPosAndShow(pOtherShell);
+        // Cursor visibility.
+        if (GetSfxViewShell() != pOtherShell)
+        {
+            OString aPayload = OString::boolean(m_bSVCursorVis);
+            SfxLokHelper::notifyOtherView(GetSfxViewShell(), pOtherShell, LOK_CALLBACK_VIEW_CURSOR_VISIBLE, "visible", aPayload);
+        }
         // Text selection.
         m_pCurrentCursor->Show(pOtherShell);
         // Graphic selection.
diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx
index 531ab88..0e848b8 100644
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@ -204,10 +204,7 @@ void SwVisibleCursor::SetPosAndShow(SfxViewShell* pViewShell)
             if (pViewShell == m_pCursorShell->GetSfxViewShell())
                 pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR, sRect.getStr());
             else
-            {
                 SfxLokHelper::notifyOtherView(m_pCursorShell->GetSfxViewShell(), pViewShell, LOK_CALLBACK_INVALIDATE_VIEW_CURSOR, "rectangle", sRect);
-                SfxLokHelper::notifyOtherView(m_pCursorShell->GetSfxViewShell(), pViewShell, LOK_CALLBACK_VIEW_CURSOR_VISIBLE, "visible", OString::boolean(m_bIsVisible));
-            }
         }
         else
         {


More information about the Libreoffice-commits mailing list