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
This commit is contained in:
@@ -1209,6 +1209,7 @@ void SwTiledRenderingTest::testShapeTextUndoGroupShells()
|
|||||||
ViewCallback aView2;
|
ViewCallback aView2;
|
||||||
aView2.m_aViewCursor = Rectangle();
|
aView2.m_aViewCursor = Rectangle();
|
||||||
aView2.m_bViewSelectionSet = false;
|
aView2.m_bViewSelectionSet = false;
|
||||||
|
aView2.m_bViewLock = false;
|
||||||
SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView2);
|
SfxViewShell::Current()->registerLibreOfficeKitViewCallback(&ViewCallback::callback, &aView2);
|
||||||
// Difference was 935 twips, the new view didn't see the editeng cursor of
|
// 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.
|
// the old one. The new difference should be <1px, but here we deal with twips.
|
||||||
@@ -1216,6 +1217,9 @@ void SwTiledRenderingTest::testShapeTextUndoGroupShells()
|
|||||||
// This was false, editeng text selection of the first view wasn't noticed
|
// This was false, editeng text selection of the first view wasn't noticed
|
||||||
// by the second view.
|
// by the second view.
|
||||||
CPPUNIT_ASSERT(aView2.m_bViewSelectionSet);
|
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->dispose();
|
||||||
mxComponent.clear();
|
mxComponent.clear();
|
||||||
|
@@ -1205,6 +1205,13 @@ void SwCursorShell::NotifyCursor(SfxViewShell* pOtherShell) const
|
|||||||
rEditView.RegisterOtherShell(nullptr);
|
rEditView.RegisterOtherShell(nullptr);
|
||||||
// Text selection, if any.
|
// Text selection, if any.
|
||||||
rEditView.DrawSelection(pOtherShell);
|
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
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user