svx/source/svdraw/svdedxv.cxx | 4 ++-- svx/source/svdraw/textchainflow.cxx | 11 +++++------ 2 files changed, 7 insertions(+), 8 deletions(-)
New commits: commit e8774374f6a572110ac2eb85330da9cec41a8c4b Author: matteocam <matteo.campane...@gmail.com> Date: Fri Jul 24 00:24:28 2015 +0200 Set PostChainingSel even with event UNCHANGED Change-Id: I5d5133fa46949eab8937e3e83a4e4f53f754f825 diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx index 89e4902..fe7f6c4 100644 --- a/svx/source/svdraw/svdedxv.cxx +++ b/svx/source/svdraw/svdedxv.cxx @@ -546,10 +546,10 @@ void SdrObjEditView::ImpMoveCursorAfterChainingEvent() switch ( pTextChain->GetCursorEvent(pTextObj) ) { case CursorChainingEvent::UNCHANGED: - // Set same selection as before the chaining + // Set same selection as before the chaining (which is saved as PostChainingSel) // We need an explicit set because the Outliner is messed up // after text transfer and otherwise it brings us at arbitrary positions. - pOLV->SetSelection(pTextChain->GetPreChainingSel(pTextObj)); + pOLV->SetSelection(aNewSel); break; case CursorChainingEvent::TO_NEXT_LINK: SdrEndTextEdit(); diff --git a/svx/source/svdraw/textchainflow.cxx b/svx/source/svdraw/textchainflow.cxx index 4d6352f..581b5be 100644 --- a/svx/source/svdraw/textchainflow.cxx +++ b/svx/source/svdraw/textchainflow.cxx @@ -317,18 +317,16 @@ void EditingTextChainFlow::impSetFlowOutlinerParams(SdrOutliner *pFlowOutl, SdrO void EditingTextChainFlow::impBroadcastCursorInfo() const { - bool bCursorOut = false; + ESelection aPreChainingSel = GetTextChain()->GetPreChainingSel(GetLinkTarget()) ; + + // Test whether the cursor is out of the box. + bool bCursorOut = mbPossiblyCursorOut && maOverflowPosSel.IsLess(aPreChainingSel); // NOTE: I handled already the stuff for the comments below. They will be kept temporarily till stuff settles down. // Possibility: 1) why don't we stop passing the actual event to the TextChain and instead we pass // the overflow pos and mbPossiblyCursorOut // 2) We pass the current selection before anything happens and we make impBroadcastCursorInfo compute it. - if (mbPossiblyCursorOut) { - ESelection aPreChainingSel = GetTextChain()->GetPreChainingSel(GetLinkTarget()) ; - // Test whether the cursor is out of the box. - bCursorOut = maOverflowPosSel.IsLess(aPreChainingSel); - } if (bCursorOut) { //maCursorEvent = CursorChainingEvent::TO_NEXT_LINK; @@ -336,6 +334,7 @@ void EditingTextChainFlow::impBroadcastCursorInfo() const GetTextChain()->SetCursorEvent(GetLinkTarget(), CursorChainingEvent::TO_NEXT_LINK); } else { //maCursorEvent = CursorChainingEvent::UNCHANGED; + GetTextChain()->SetPostChainingSel(GetLinkTarget(), aPreChainingSel); GetTextChain()->SetCursorEvent(GetLinkTarget(), CursorChainingEvent::UNCHANGED); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits