&& 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.
+ // them, but only if the cursor has really moved.
if (!same_par_pos) {
// find range of spaces around cursors
int from = old.pos();
if (from != to && from > 0 && to < oldpar.size())
++from;
+ if (same_par && cur.pos() > from && cur.pos() < to)
+ ++from;
+
// Remove spaces and adapt cursor.
if (from < to) {
oldpar.eraseChars(from, to, cur.buffer()->params().track_changes);
}
}
- // only do our magic if we changed paragraph
+ // only do our other magic if we changed paragraph
if (same_par)
return false;
while (from < par.size()
&& (!par.isLineSeparator(from) || par.isDeleted(from)))
++from;
- LYXERR0("from=" << from);
// find string of spaces
pos_type to = from;
while (to < par.size()
&& par.isLineSeparator(to) && !par.isDeleted(to))
++to;
- LYXERR0("to=" << to);
// empty? We are done
if (from == to)
break;