include/svx/textchainflow.hxx | 2 +- svx/source/svdraw/textchainflow.cxx | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-)
New commits: commit 0b4dfe7c504b67f6aabf168bd7c2f21345de6d13 Author: matteocam <matteo.campane...@gmail.com> Date: Tue Jul 7 22:55:58 2015 -0400 Don't change cursor if UF-induced OF occurs Change-Id: Ibf3fdee16ca40aed8cde52cc55181fc103b6c81e diff --git a/include/svx/textchainflow.hxx b/include/svx/textchainflow.hxx index aa17f1e..70ff6e4 100644 --- a/include/svx/textchainflow.hxx +++ b/include/svx/textchainflow.hxx @@ -92,7 +92,7 @@ class TextChainFlow { OFlowChainedText *mpOverflChText; UFlowChainedText *mpUnderflChText; - + bool mbOFisUFinduced; }; diff --git a/svx/source/svdraw/textchainflow.cxx b/svx/source/svdraw/textchainflow.cxx index 74f15a1..2647afa 100644 --- a/svx/source/svdraw/textchainflow.cxx +++ b/svx/source/svdraw/textchainflow.cxx @@ -34,6 +34,8 @@ TextChainFlow::TextChainFlow(SdrTextObj *pChainTarget) bUnderflow = bOverflow = false; + mbOFisUFinduced = false; + mpOverflChText = NULL; mpUnderflChText = NULL; @@ -73,32 +75,35 @@ void TextChainFlow::impCheckForFlowEvents(SdrOutliner *pFlowOutl, SdrOutliner *p bool bIsPageOverflow = pFlowOutl->IsPageOverflow(); - impUpdateCursorEvent(pFlowOutl, bIsPageOverflow); + // NOTE: overflow and underflow cannot be both true + bOverflow = bIsPageOverflow && mpNextLink; + bUnderflow = !bIsPageOverflow && mpNextLink && mpNextLink->HasText(); + + impUpdateCursorEvent(pFlowOutl, bOverflow); if (pParamOutl != NULL) { pFlowOutl->SetUpdateMode(bOldUpdateMode); // XXX: Plausibly should be the prev. state } - // NOTE: overflow and underflow cannot be both true - bOverflow = bIsPageOverflow && mpNextLink; - bUnderflow = !bIsPageOverflow && mpNextLink && mpNextLink->HasText(); - // Set (Non)OverflowingTxt here (if any) mpOverflChText = bOverflow ? new OFlowChainedText(pFlowOutl) : NULL; // Set current underflowing text (if any) mpUnderflChText = bUnderflow ? new UFlowChainedText(pFlowOutl) : NULL; + // To check whether an overflow is underflow induced or not (useful in cursor checking) + mbOFisUFinduced = bUnderflow; + } -void TextChainFlow::impUpdateCursorEvent(SdrOutliner *pFlowOutl, bool bIsOverflow) +void TextChainFlow::impUpdateCursorEvent(SdrOutliner *, bool bIsOverflow) { // XXX: Current implementation might create problems with UF- // In fact UF causes a - if (bIsOverflow) { + if (bIsOverflow && !mbOFisUFinduced) { bool bCursorOut = true; // XXX: Should have real check if (bCursorOut) { GetTextChain()->SetCursorEvent(GetLinkTarget(), _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits