summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2016-09-14 09:16:56 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-09-14 10:11:48 +0200
commit977a0ca8c388a51ad13d51681d28b9ed986f27fa (patch)
tree5106ee29bdda476f0e8691d054b700bb27064355
parent1ac8217f6114943002730502ebafd8617d2fd5c1 (diff)
sw draw text: emit LOK_CALLBACK_VIEW_LOCK from registerCallback()
With this, in case the first view has an active text edit and a new view is created, then the shape text lock is instantly visible in the second view, even if the first view does not end + begin the text edit again later. Change-Id: I82d98ab1431a54a1a8897d16ce7fa0856baa2a10 (cherry picked from commit 7b784e4e3927d91a96cd0b54fc43c9b488822e47)
-rw-r--r--sw/qa/extras/tiledrendering/tiledrendering.cxx4
-rw-r--r--sw/source/core/crsr/crsrsh.cxx7
2 files changed, 11 insertions, 0 deletions
diff --git a/sw/qa/extras/tiledrendering/tiledrendering.cxx b/sw/qa/extras/tiledrendering/tiledrendering.cxx
index 56f087a1c84e..c72a961e83d6 100644
--- a/sw/qa/extras/tiledrendering/tiledrendering.cxx
+++ b/sw/qa/extras/tiledrendering/tiledrendering.cxx
@@ -1210,6 +1210,7 @@ void SwTiledRenderingTest::testShapeTextUndoGroupShells()
ViewCallback aView2;
aView2.m_aViewCursor = Rectangle();
aView2.m_bViewSelectionSet = false;
+ aView2.m_bViewLock = false;
SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView2);
// Difference was 935 twips, the new view didn't see the editeng cursor of
// the old one. The new difference should be <1px, but here we deal with twips.
@@ -1217,6 +1218,9 @@ void SwTiledRenderingTest::testShapeTextUndoGroupShells()
// This was false, editeng text selection of the first view wasn't noticed
// by the second view.
CPPUNIT_ASSERT(aView2.m_bViewSelectionSet);
+ // This was false, the new view wasn't aware of the shape text lock created
+ // by the old view.
+ CPPUNIT_ASSERT(aView2.m_bViewLock);
mxComponent->dispose();
mxComponent.clear();
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index 3a9ebe96ecf8..99f75a4058c3 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -1237,6 +1237,13 @@ void SwCursorShell::NotifyCursor(SfxViewShell* pOtherShell) const
rEditView.RegisterOtherShell(nullptr);
// Text selection, if any.
rEditView.DrawSelection(pOtherShell);
+
+ // Shape text lock.
+ if (OutlinerView* pOutlinerView = pView->GetTextEditOutlinerView())
+ {
+ OString sRect = pOutlinerView->GetOutputArea().toString();
+ SfxLokHelper::notifyOtherView(GetSfxViewShell(), pOtherShell, LOK_CALLBACK_VIEW_LOCK, "rectangle", sRect);
+ }
}
else
{