From 4a3879f1edf2c6055fe8bf591915f2db5c1a3db8 Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Mon, 15 Nov 2004 20:42:31 +0000 Subject: [PATCH] fix cursor placement problem when inserting into the current buffer at the top of the edit window git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2097 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- src/files.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/files.c b/src/files.c index 07e5a247..592aaa3a 100644 --- a/src/files.c +++ b/src/files.c @@ -499,6 +499,8 @@ void do_insertfile( char *ans = mallocstrcpy(NULL, ""); /* The last answer the user typed on the statusbar. */ filestruct *edittop_save = edittop; + bool at_edittop = FALSE; + /* Whether we're at the top of the edit window. */ #ifndef DISABLE_WRAPPING wrap_reset(); @@ -591,11 +593,12 @@ void do_insertfile( #endif /* If we're not inserting into a new buffer, partition * the filestruct so that it contains no text and hence - * looks like a new buffer, and set edittop to the top - * of the partition. */ + * looks like a new buffer, and keep track of whether + * the top of the partition is the top of the edit + * window. */ filepart = partition_filestruct(current, current_x, current, current_x); - edittop = fileage; + at_edittop = (fileage == edittop); #ifdef ENABLE_MULTIBUFFER } #endif @@ -628,6 +631,12 @@ void do_insertfile( * partition. */ renumber(top_save); + /* If we were at the top of the edit window before, set + * the saved value of edittop to the new top of the edit + * window. */ + if (at_edittop) + edittop_save = fileage; + /* Set edittop back to what it was before. */ edittop = edittop_save; } -- 2.39.5