diff options
-rw-r--r-- | starmath/inc/cursor.hxx | 7 | ||||
-rw-r--r-- | starmath/source/cursor.cxx | 19 |
2 files changed, 16 insertions, 10 deletions
diff --git a/starmath/inc/cursor.hxx b/starmath/inc/cursor.hxx index 9554fc7ea5c8..cd36b4ee5a97 100644 --- a/starmath/inc/cursor.hxx +++ b/starmath/inc/cursor.hxx @@ -306,9 +306,9 @@ private: /** Clone list of nodes in a clipboard (creates a deep clone) */ static SmNodeList* CloneList(SmClipboard &rClipboard); - /** Find an iterator pointing to the node in pLineList following aCaretPos + /** Find an iterator pointing to the node in pLineList following rCaretPos * - * If aCaretPos::pSelectedNode cannot be found it is assumed that it's in front of pLineList, + * If rCaretPos.pSelectedNode cannot be found it is assumed that it's in front of pLineList, * thus not an element in pLineList. In this case this method returns an iterator to the * first element in pLineList. * @@ -316,7 +316,8 @@ private: * reason you should beaware that iterators to elements in pLineList may be invalidated, and * that you should call PatchLineList() with this iterator if no action is taken. */ - static SmNodeList::iterator FindPositionInLineList(SmNodeList* pLineList, SmCaretPos aCaretPos); + static SmNodeList::iterator FindPositionInLineList(SmNodeList* pLineList, + const SmCaretPos& rCaretPos); /** Patch a line list after modification, merge SmTextNode, remove SmPlaceNode etc. * diff --git a/starmath/source/cursor.cxx b/starmath/source/cursor.cxx index dab3dc497974..bae47789bd31 100644 --- a/starmath/source/cursor.cxx +++ b/starmath/source/cursor.cxx @@ -340,17 +340,22 @@ void SmCursor::InsertNodes(SmNodeList* pNewNodes){ FinishEdit(pLineList, pLineParent, nParentIndex, PosAfterInsert); } -SmNodeList::iterator SmCursor::FindPositionInLineList(SmNodeList* pLineList, SmCaretPos aCaretPos) { +SmNodeList::iterator SmCursor::FindPositionInLineList(SmNodeList* pLineList, + const SmCaretPos& rCaretPos) +{ //Find iterator for position SmNodeList::iterator it; for(it = pLineList->begin(); it != pLineList->end(); ++it){ - if(*it == aCaretPos.pSelectedNode){ - if((*it)->GetType() == NTEXT){ + if(*it == rCaretPos.pSelectedNode) + { + if((*it)->GetType() == NTEXT) + { //Split textnode if needed - if(aCaretPos.Index > 0){ - SmTextNode* pText = static_cast<SmTextNode*>(aCaretPos.pSelectedNode); - OUString str1 = pText->GetText().copy(0, aCaretPos.Index); - OUString str2 = pText->GetText().copy(aCaretPos.Index); + if(rCaretPos.Index > 0) + { + SmTextNode* pText = static_cast<SmTextNode*>(rCaretPos.pSelectedNode); + OUString str1 = pText->GetText().copy(0, rCaretPos.Index); + OUString str2 = pText->GetText().copy(rCaretPos.Index); pText->ChangeText(str1); ++it; //Insert str2 as new text node |