[Libreoffice-commits] core.git: Branch 'feature/gsoc14-draw-chained-text-boxes' - 2 commits - svx/source

matteocam matteo.campanelli at gmail.com
Mon Jul 6 13:50:06 PDT 2015


 svx/source/svdraw/svdedxv.cxx  |   14 +++++++++++++-
 svx/source/svdraw/svdotext.cxx |    7 -------
 2 files changed, 13 insertions(+), 8 deletions(-)

New commits:
commit 7f44515aa8ac339757d6fdf3d1ce6fc15849d940
Author: matteocam <matteo.campanelli at gmail.com>
Date:   Mon Jul 6 16:49:12 2015 -0400

    Fixed function name
    
    Change-Id: I3187547ac920725e448d9053893c857dbd17d427

diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 61c1593..cc16d53 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -490,13 +490,14 @@ IMPL_LINK_NOARG(SdrObjEditView,ImpChainingEventHdl)
         OutlinerView* pOLV = GetTextEditOutlinerView();
         if( pTextObj && pOLV)
         {
+            TextChain *pTextChain = pTextObj->GetTextChain();
             // This is true during an underflow-caused overflow (with pEdtOutl->SetText())
-            if (GetTextChain()->GetNilChainingEvent(pTextObj)) {
+            if (pTextChain->GetNilChainingEvent(pTextObj)) {
                 return 0;
             }
 
             // We prevent to trigger further handling of overflow/underflow for pTextObj
-            GetTextChain()->SetNilChainingEvent(pTextObj, true);
+            pTextChain->SetNilChainingEvent(pTextObj, true);
 
             // Save previous selection pos
             ESelection aPreChainingSel(pOLV->GetSelection());
@@ -507,7 +508,7 @@ IMPL_LINK_NOARG(SdrObjEditView,ImpChainingEventHdl)
             // XXX: this logic could be put in a separate approppriate class
             /* Cursor motion stuff */
 
-            CursorChainingEvent aCursorEvent = pTextObj->GetTextChain()->GetCursorEvent(pTextObj);
+            CursorChainingEvent aCursorEvent = pTextChain->GetCursorEvent(pTextObj);
             SdrTextObj *pNextLink = pTextObj->GetNextLinkInChain();
 
             switch (aCursorEvent) {
@@ -534,8 +535,8 @@ IMPL_LINK_NOARG(SdrObjEditView,ImpChainingEventHdl)
             ESelection aEndSel(nLastParaIndex,nLenLastPara,nLastParaIndex,nLenLastPara);
             */
 
-            // XXX: Must be called
-            GetTextChain()->SetNilChainingEvent(pTextObj, false);
+            // NOTE: Must be called. Don't let the function return if you set it to true and not reset it
+            pTextChain->SetNilChainingEvent(pTextObj, false);
         } else {
             // XXX
             fprintf(stderr, "[OnChaining] No Edit Outliner View\n");
commit f0618282407e22d2486da761af7a8d033babcfdd
Author: matteocam <matteo.campanelli at gmail.com>
Date:   Mon Jul 6 16:47:24 2015 -0400

    NilChainingEvents handled in SdrObjEditView
    
    Change-Id: I30dd131b849c3a8a97d5a75a61fc013b3d17b89e

diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index bc5bfb0..61c1593 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -490,6 +490,14 @@ IMPL_LINK_NOARG(SdrObjEditView,ImpChainingEventHdl)
         OutlinerView* pOLV = GetTextEditOutlinerView();
         if( pTextObj && pOLV)
         {
+            // This is true during an underflow-caused overflow (with pEdtOutl->SetText())
+            if (GetTextChain()->GetNilChainingEvent(pTextObj)) {
+                return 0;
+            }
+
+            // We prevent to trigger further handling of overflow/underflow for pTextObj
+            GetTextChain()->SetNilChainingEvent(pTextObj, true);
+
             // Save previous selection pos
             ESelection aPreChainingSel(pOLV->GetSelection());
 
@@ -498,6 +506,7 @@ IMPL_LINK_NOARG(SdrObjEditView,ImpChainingEventHdl)
 
             // XXX: this logic could be put in a separate approppriate class
             /* Cursor motion stuff */
+
             CursorChainingEvent aCursorEvent = pTextObj->GetTextChain()->GetCursorEvent(pTextObj);
             SdrTextObj *pNextLink = pTextObj->GetNextLinkInChain();
 
@@ -525,6 +534,8 @@ IMPL_LINK_NOARG(SdrObjEditView,ImpChainingEventHdl)
             ESelection aEndSel(nLastParaIndex,nLenLastPara,nLastParaIndex,nLenLastPara);
             */
 
+            // XXX: Must be called
+            GetTextChain()->SetNilChainingEvent(pTextObj, false);
         } else {
             // XXX
             fprintf(stderr, "[OnChaining] No Edit Outliner View\n");
diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx
index 3455c97..531e41c 100644
--- a/svx/source/svdraw/svdotext.cxx
+++ b/svx/source/svdraw/svdotext.cxx
@@ -1992,12 +1992,6 @@ void SdrTextObj::onChainingEvent()
     if (!pEdtOutl)
         return;
 
-    // This is true during an underflow-caused overflow (with pEdtOutl->SetText())
-    if (GetTextChain()->GetNilChainingEvent(this)) {
-
-        return;
-    }
-
     // Outliner for text transfer
     SdrOutliner &aDrawOutliner = ImpGetDrawOutliner();
 
@@ -2027,7 +2021,6 @@ void SdrTextObj::onChainingEvent()
 
         }
     }
-    GetTextChain()->SetNilChainingEvent(this, false);
 }
 
 


More information about the Libreoffice-commits mailing list