From 249cc3cb243c1fed6b83af67d034f3cbac6e3d08 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Wed, 26 Apr 2023 09:37:56 -0500 Subject: [PATCH] Added scroll functionality when any key is pressed on the last line --- editor.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/editor.c b/editor.c index b05f950..ea4baeb 100644 --- a/editor.c +++ b/editor.c @@ -168,6 +168,13 @@ void page_up_handler(Buffer* buffer) { } +void keypress_handler(char key, Buffer* buffer) { + buffer_insert(key,buffer); + if ((getcury(mainwin) + 1) == getmaxy(mainwin)) { + scroll_page_down_handler(buffer); + } +} + int is_file(char* path) { struct stat st; if (stat(path, &st) < 0) { @@ -295,7 +302,7 @@ int main(int argc, char** argv) { break; case 10: /* Enter key */ - buffer_insert('\n',buffer); /* Why handle this separately? + keypress_handler('\n',buffer); /* Why handle this separately? Because, by default, curses seems to send '\r\n', which is technically two characters. I should probably add some code to deal with this scenario @@ -327,7 +334,7 @@ int main(int argc, char** argv) { break; default: - buffer_insert(ch,buffer); + keypress_handler(ch,buffer); }