include/svx/textchain.hxx | 4 ++++ svx/source/svdraw/svdotxed.cxx | 8 +++++++- svx/source/svdraw/textchain.cxx | 1 + svx/source/svdraw/textchaincursor.cxx | 1 + 4 files changed, 13 insertions(+), 1 deletion(-)
New commits: commit 911c02aff6d91a6c2d3c08f10e6751a49d42d7cf Author: matteocam <matteo.campane...@gmail.com> Date: Fri Aug 21 00:21:22 2015 +0200 Added implementation Change-Id: I5f199a35fa1e10d11184791ce63f9b35b3728d03 diff --git a/svx/source/svdraw/textchain.cxx b/svx/source/svdraw/textchain.cxx index 911e006..b7146c1 100644 --- a/svx/source/svdraw/textchain.cxx +++ b/svx/source/svdraw/textchain.cxx @@ -31,6 +31,7 @@ IMPL_CHAIN_PROP_INTERFACE(PreChainingSel, ESelection) IMPL_CHAIN_PROP_INTERFACE(PostChainingSel, ESelection) IMPL_CHAIN_PROP_INTERFACE(IsPartOfLastParaInNextLink, bool) IMPL_CHAIN_PROP_INTERFACE(PendingOverflowCheck, bool) +IMPL_CHAIN_PROP_INTERFACE(SwitchingToNextBox, bool) /* End Definition of Properties Interface */ commit cd6a213f09aebf552624924f210190ffac32b8d3 Author: matteocam <matteo.campane...@gmail.com> Date: Fri Aug 21 00:17:35 2015 +0200 Don't use SetOutlinerParaObject if we are switching to next box Change-Id: I685252094e90ee26d99d5852a63cf6dcb3dabaa8 diff --git a/include/svx/textchain.hxx b/include/svx/textchain.hxx index 91e8211..81421f1 100644 --- a/include/svx/textchain.hxx +++ b/include/svx/textchain.hxx @@ -120,6 +120,7 @@ class ImpChainLinkProperties INIT_CHAIN_PROP(PostChainingSel, ESelection(0,0,0,0)); INIT_CHAIN_PROP(IsPartOfLastParaInNextLink, false) // XXX: Should come from file INIT_CHAIN_PROP(PendingOverflowCheck, false) + INIT_CHAIN_PROP(SwitchingToNextBox, false) } private: @@ -130,6 +131,7 @@ class ImpChainLinkProperties DECL_CHAIN_PROP(PostChainingSel, ESelection) DECL_CHAIN_PROP(IsPartOfLastParaInNextLink, bool) DECL_CHAIN_PROP(PendingOverflowCheck, bool) + DECL_CHAIN_PROP(SwitchingToNextBox, bool) }; @@ -158,6 +160,8 @@ class TextChain { DECL_CHAIN_PROP_INTERFACE(IsPartOfLastParaInNextLink, bool) // return whether there is a pending overflow check (usually when we move cursor after an overflow in the prev link) DECL_CHAIN_PROP_INTERFACE(PendingOverflowCheck, bool) + // return whether we are currently moving the cursor to the next box (useful to know whether we should prevent SetOutlinerParaObject invocations in SdrTextObj::EndTextEdit) + DECL_CHAIN_PROP_INTERFACE(SwitchingToNextBox, bool) diff --git a/svx/source/svdraw/svdotxed.cxx b/svx/source/svdraw/svdotxed.cxx index 0366545..dfcbae8 100644 --- a/svx/source/svdraw/svdotxed.cxx +++ b/svx/source/svdraw/svdotxed.cxx @@ -290,7 +290,13 @@ void SdrTextObj::EndTextEdit(SdrOutliner& rOutl) // uses GetCurrentBoundRect() which needs to take the text into account // to work correct mbInEditMode = false; - SetOutlinerParaObject(pNewText); + // We don't want broadcasting if we are merely trying to move to next box (this prevents infinite loops) + if (IsChainable() && GetTextChain()->GetSwitchingToNextBox(this)) { + GetTextChain()->SetSwitchingToNextBox(this, false); + NbcSetOutlinerParaObject(pNewText); + } else { + SetOutlinerParaObject(pNewText); + } } /* Beginning Chaining-related code */ diff --git a/svx/source/svdraw/textchaincursor.cxx b/svx/source/svdraw/textchaincursor.cxx index 87c8f86..23bd8f5 100644 --- a/svx/source/svdraw/textchaincursor.cxx +++ b/svx/source/svdraw/textchaincursor.cxx @@ -173,6 +173,7 @@ void TextChainCursorManager::HandleCursorEvent( pOLV->SetSelection(aNewSel); break; case CursorChainingEvent::TO_NEXT_LINK: + mpTextObj->GetTextChain()->SetSwitchingToNextBox(mpTextObj, true); impChangeEditingTextObj(pNextLink, aNewSel); break; case CursorChainingEvent::TO_PREV_LINK: _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits