text: update placewewant properly when indenting/unindenting
If the position of the cursor changes horizontally, placewewant should change with it. This fixes https://savannah.gnu.org/bugs/?51407. Reported-by: David Lawrence Ramsey <pooka109@gmail.com>master
parent
ac726f08fa
commit
5bc4abeefe
|
@ -363,8 +363,10 @@ void do_indent(ssize_t cols)
|
||||||
openfile->mark_begin_x >= indent_len)
|
openfile->mark_begin_x >= indent_len)
|
||||||
openfile->mark_begin_x += line_indent_len;
|
openfile->mark_begin_x += line_indent_len;
|
||||||
|
|
||||||
if (f == openfile->current && openfile->current_x >= indent_len)
|
if (f == openfile->current && openfile->current_x >= indent_len) {
|
||||||
openfile->current_x += line_indent_len;
|
openfile->current_x += line_indent_len;
|
||||||
|
openfile->placewewant = xplustabs();
|
||||||
|
}
|
||||||
|
|
||||||
/* If the NO_NEWLINES flag isn't set, and this is the
|
/* If the NO_NEWLINES flag isn't set, and this is the
|
||||||
* magicline, add a new magicline. */
|
* magicline, add a new magicline. */
|
||||||
|
@ -405,6 +407,7 @@ void do_indent(ssize_t cols)
|
||||||
openfile->current_x = indent_new;
|
openfile->current_x = indent_new;
|
||||||
else
|
else
|
||||||
openfile->current_x -= indent_shift;
|
openfile->current_x -= indent_shift;
|
||||||
|
openfile->placewewant = xplustabs();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We've unindented, so the indentation changed. */
|
/* We've unindented, so the indentation changed. */
|
||||||
|
|
Loading…
Reference in New Issue