mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-23 18:24:48 +00:00
DEPM: reorganize a bit (no change intended)
Exit early if the cursor has not moved. Place comments where they belong.
This commit is contained in:
parent
2dc62d0405
commit
b59b968c3e
@ -819,6 +819,10 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
|
||||
Paragraph & oldpar = old.paragraph();
|
||||
bool const trackChanges = cur.buffer()->params().track_changes;
|
||||
|
||||
// We do nothing if cursor did not move
|
||||
if (cur.top() == old.top())
|
||||
return false;
|
||||
|
||||
// We do not do anything on read-only documents
|
||||
if (cur.buffer()->isReadonly())
|
||||
return false;
|
||||
@ -827,6 +831,22 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
|
||||
if (oldpar.isFreeSpacing())
|
||||
return false;
|
||||
|
||||
// Find a common inset and the corresponding depth.
|
||||
size_t depth = 0;
|
||||
for (; depth < cur.depth(); ++depth)
|
||||
if (&old.inset() == &cur[depth].inset())
|
||||
break;
|
||||
|
||||
// Whether a common inset is found and whether the cursor is still in
|
||||
// the same paragraph (possibly nested).
|
||||
bool const same_par = depth < cur.depth() && old.idx() == cur[depth].idx()
|
||||
&& old.pit() == cur[depth].pit();
|
||||
|
||||
/*
|
||||
* (1) If the chars around the old cursor were spaces, delete some of
|
||||
* them, but only if the cursor has really moved.
|
||||
*/
|
||||
|
||||
/* Ok I'll put some comments here about what is missing.
|
||||
There are still some small problems that can lead to
|
||||
double spaces stored in the document file or space at
|
||||
@ -844,22 +864,6 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
|
||||
// delete the LineSeparator.
|
||||
// MISSING
|
||||
|
||||
// Find a common inset and the corresponding depth.
|
||||
size_t depth = 0;
|
||||
for (; depth < cur.depth(); ++depth)
|
||||
if (&old.inset() == &cur[depth].inset())
|
||||
break;
|
||||
|
||||
// Whether a common inset is found and whether the cursor is still in
|
||||
// the same paragraph (possibly nested).
|
||||
bool const same_par = depth < cur.depth() && old.idx() == cur[depth].idx()
|
||||
&& old.pit() == cur[depth].pit();
|
||||
bool const same_par_pos = depth == cur.depth() - 1 && same_par
|
||||
&& old.pos() == cur[depth].pos();
|
||||
|
||||
// If the chars around the old cursor were spaces, delete some of
|
||||
// them, but only if the cursor has really moved.
|
||||
if (!same_par_pos) {
|
||||
// find range of spaces around cursors
|
||||
pos_type from = old.pos();
|
||||
while (from > 0
|
||||
@ -897,7 +901,10 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (2) If the paragraph where the cursor was is empty, delete it
|
||||
*/
|
||||
|
||||
// only do our other magic if we changed paragraph
|
||||
if (same_par)
|
||||
|
Loading…
Reference in New Issue
Block a user