Commit fc367a32 authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

moving: don't push x forward when backward movement lands on a split tab

This fixes https://savannah.gnu.org/bugs/?51809.
No related merge requests found
Showing with 2 additions and 7 deletions
+2 -7
...@@ -103,7 +103,7 @@ void do_page_up(void) ...@@ -103,7 +103,7 @@ void do_page_up(void)
} }
openfile->placewewant = leftedge + target_column; openfile->placewewant = leftedge + target_column;
openfile->current_x = proper_x(openfile->current->data, leftedge, openfile->current_x = actual_x(openfile->current->data,
actual_last_column(leftedge, target_column)); actual_last_column(leftedge, target_column));
/* Move the viewport so that the cursor stays immobile, if possible. */ /* Move the viewport so that the cursor stays immobile, if possible. */
...@@ -461,8 +461,6 @@ void do_end(void) ...@@ -461,8 +461,6 @@ void do_end(void)
* also scroll the screen one row, so the cursor stays in the same spot. */ * also scroll the screen one row, so the cursor stays in the same spot. */
void do_up(bool scroll_only) void do_up(bool scroll_only)
{ {
filestruct *was_current = openfile->current;
size_t was_x = openfile->current_x;
size_t leftedge, target_column; size_t leftedge, target_column;
/* When just scrolling and the top of the file is onscreen, get out. */ /* When just scrolling and the top of the file is onscreen, get out. */
...@@ -476,10 +474,8 @@ void do_up(bool scroll_only) ...@@ -476,10 +474,8 @@ void do_up(bool scroll_only)
if (go_back_chunks(1, &openfile->current, &leftedge) > 0) if (go_back_chunks(1, &openfile->current, &leftedge) > 0)
return; return;
openfile->current_x = proper_x(openfile->current->data, leftedge, openfile->current_x = actual_x(openfile->current->data,
actual_last_column(leftedge, target_column)); actual_last_column(leftedge, target_column));
if (openfile->current == was_current && openfile->current_x == was_x)
openfile->current_x--;
if (scroll_only) if (scroll_only)
edit_scroll(UPWARD, 1); edit_scroll(UPWARD, 1);
...@@ -488,7 +484,6 @@ void do_up(bool scroll_only) ...@@ -488,7 +484,6 @@ void do_up(bool scroll_only)
/* <Up> should not change placewewant, so restore it. */ /* <Up> should not change placewewant, so restore it. */
openfile->placewewant = leftedge + target_column; openfile->placewewant = leftedge + target_column;
} }
/* Move the cursor to next line or chunk. If scroll_only is TRUE, also /* Move the cursor to next line or chunk. If scroll_only is TRUE, also
......
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