diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-09-22 10:52:45 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-09-22 13:51:17 +0200 |
commit | e387193eab0e4729d02b6ffd2c972c3d71942947 (patch) | |
tree | f1d0056b5f2ff47049f7a864942633f4b7a7c11f /sw | |
parent | a4480555561df77e36c5f622cb63e4cf44b2490a (diff) |
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
Diffstat (limited to 'sw')
-rw-r--r-- | sw/qa/extras/tiledrendering/tiledrendering.cxx | 8 | ||||
-rw-r--r-- | sw/source/core/crsr/crsrsh.cxx | 8 | ||||
-rw-r--r-- | sw/source/core/crsr/viscrs.cxx | 3 |
3 files changed, 14 insertions, 5 deletions
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx index 9d9a100beb98..1e1a6bbc0a40 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 d0ffa27fd754..d91d954138f5 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 531ab885ac37..0e848b88a859 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 { |