Commit 4a1835fd authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

Refreshing the mark's pointer only when it is on the same line as the cursor,

and recalculating the mark's x coordinate only when the mark comes after it.
Also correcting the recalculation in one case.


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5384 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 9 additions and 4 deletions
+9 -4
2015-10-31 Benno Schulenberg <bensberg@justemail.net>
* src/nano.c (copy_from_filestruct): When pasting while the mark is
on, the mark's pointer needs to be refreshed only when it is on the
same line as the cursor, and the mark's x coordinate only when the
mark is located after the cursor. This fixes Savannah bug #46347.
2015-10-29 Benno Schulenberg <bensberg@justemail.net> 2015-10-29 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (add_undo): Only skip adding an undo when the current * src/text.c (add_undo): Only skip adding an undo when the current
action equals the last action. This condition is needed for when action equals the last action. This condition is needed for when
......
...@@ -458,7 +458,7 @@ void copy_from_filestruct(filestruct *somebuffer) ...@@ -458,7 +458,7 @@ void copy_from_filestruct(filestruct *somebuffer)
openfile->current_x = strlen(openfile->filebot->data); openfile->current_x = strlen(openfile->filebot->data);
if (openfile->fileage == openfile->filebot) { if (openfile->fileage == openfile->filebot) {
#ifndef NANO_TINY #ifndef NANO_TINY
if (openfile->mark_set) { if (openfile->mark_set && single_line) {
openfile->mark_begin = openfile->current; openfile->mark_begin = openfile->current;
if (!right_side_up) if (!right_side_up)
openfile->mark_begin_x += openfile->current_x; openfile->mark_begin_x += openfile->current_x;
...@@ -476,9 +476,8 @@ void copy_from_filestruct(filestruct *somebuffer) ...@@ -476,9 +476,8 @@ void copy_from_filestruct(filestruct *somebuffer)
} else { } else {
if (single_line) { if (single_line) {
openfile->mark_begin = openfile->current; openfile->mark_begin = openfile->current;
openfile->mark_begin_x -= current_x_save; openfile->mark_begin_x += openfile->current_x - current_x_save;
} else }
openfile->mark_begin_x -= openfile->current_x;
} }
} }
#endif #endif
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment