selecting: do not cancel the softmark when the cursor is not moved
The softmark is now only cancelled when the cursor is moved without Shift being held, not for things like ^L (Refresh), ^C (Position), or ^G (Help). This addresses https://savannah.gnu.org/bugs/?52470.
Этот коммит содержится в:
родитель
1e718cec35
Коммит
88a0bb9685
@ -1687,6 +1687,9 @@ int do_input(bool allow_funcs)
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
|
filestruct *was_current = openfile->current;
|
||||||
|
size_t was_x = openfile->current_x;
|
||||||
|
|
||||||
/* If Shifted movement occurs, set the mark. */
|
/* If Shifted movement occurs, set the mark. */
|
||||||
if (shift_held && !openfile->mark) {
|
if (shift_held && !openfile->mark) {
|
||||||
openfile->mark = openfile->current;
|
openfile->mark = openfile->current;
|
||||||
@ -1699,7 +1702,9 @@ int do_input(bool allow_funcs)
|
|||||||
#ifndef NANO_TINY
|
#ifndef NANO_TINY
|
||||||
/* If Shiftless movement occurred, discard a soft mark. */
|
/* If Shiftless movement occurred, discard a soft mark. */
|
||||||
if (!shift_held && openfile->mark &&
|
if (!shift_held && openfile->mark &&
|
||||||
openfile->kind_of_mark == SOFTMARK) {
|
openfile->kind_of_mark == SOFTMARK &&
|
||||||
|
(openfile->current_x != was_x ||
|
||||||
|
openfile->current != was_current)) {
|
||||||
openfile->mark = NULL;
|
openfile->mark = NULL;
|
||||||
refresh_needed = TRUE;
|
refresh_needed = TRUE;
|
||||||
}
|
}
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user