summaryrefslogtreecommitdiffstats
path: root/sw/source/core/crsr/crsrsh.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core/crsr/crsrsh.cxx')
-rw-r--r--sw/source/core/crsr/crsrsh.cxx12
1 files changed, 9 insertions, 3 deletions
diff --git a/sw/source/core/crsr/crsrsh.cxx b/sw/source/core/crsr/crsrsh.cxx
index b7f6962982..33f11e9a28 100644
--- a/sw/source/core/crsr/crsrsh.cxx
+++ b/sw/source/core/crsr/crsrsh.cxx
@@ -738,9 +738,15 @@ bool SwCursorShell::MoveStartText()
SwTableNode const*const pTable(pStartNode->FindTableNode());
m_pCurrentCursor->GetPoint()->Assign(*pStartNode);
GetDoc()->GetNodes().GoNext(m_pCurrentCursor->GetPoint());
- while (m_pCurrentCursor->GetPoint()->GetNode().FindTableNode() != pTable
- && (!pTable || pTable->GetIndex() < m_pCurrentCursor->GetPoint()->GetNode().FindTableNode()->GetIndex())
- && MoveOutOfTable());
+ while (auto* pFoundTable = m_pCurrentCursor->GetPoint()->GetNode().FindTableNode())
+ {
+ if (pFoundTable == pTable)
+ break;
+ if (pTable && pTable->GetIndex() >= pFoundTable->GetIndex())
+ break;
+ if (!MoveOutOfTable())
+ break;
+ }
UpdateCursor(SwCursorShell::SCROLLWIN|SwCursorShell::CHKRANGE|SwCursorShell::READONLY);
return old != *m_pCurrentCursor->GetPoint();
}