summaryrefslogtreecommitdiff
path: root/jet.c
diff options
context:
space:
mode:
authorJuan Manuel Tomás <jtomas1815@gmail.com>2020-05-03 13:07:36 -0300
committerJuan Manuel Tomás <jtomas1815@gmail.com>2020-05-03 13:07:36 -0300
commitfcc480d1592bebf474edc4b63f91d9251e4f1071 (patch)
tree47cd8056aba313452244ba941f113ce5d6f63012 /jet.c
parent05e823c77bd775a30478498fb83b287f9be6865f (diff)
downloadjet-fcc480d1592bebf474edc4b63f91d9251e4f1071.tar.gz
jet-fcc480d1592bebf474edc4b63f91d9251e4f1071.zip
Scroll only when cursor goes off screen
Diffstat (limited to 'jet.c')
-rw-r--r--jet.c34
1 files changed, 8 insertions, 26 deletions
diff --git a/jet.c b/jet.c
index 5f7e5b1..294b822 100644
--- a/jet.c
+++ b/jet.c
@@ -61,32 +61,22 @@ int main(int argc, char *argv[]) {
mode = INSERT_MODE;
break;
case 'k':
- prev_line(&window_start, window_width);
prev_line(&cursor, window_width);
+ if (y <= 0) {
+ prev_line(&window_start, window_width);
+ }
break;
case 'j':
- if (element(&window_end)) {
- next_line(&window_start, window_width);
- }
next_line(&cursor, window_width);
- if (same_point(&cursor, &window_end)) {
- move_point_backward(&cursor);
+ if (y >= window_height - 2) {
+ next_line(&window_start, window_width);
}
break;
case 'h':
- if (same_point(&cursor, &window_start)) {
- prev_line(&window_start, window_width);
- }
move_point_backward(&cursor);
break;
case 'l':
- if (same_point(&cursor, &window_end)) {
- next_line(&window_start, window_width);
- }
move_point_forward(&cursor);
- if (same_point(&cursor, &window_end)) {
- move_point_backward(&cursor);
- }
break;
}
} else {
@@ -95,23 +85,15 @@ int main(int argc, char *argv[]) {
mode = NORMAL_MODE;
break;
case KEY_BACKSPACE:
- if (same_point(&cursor, &window_start)) {
- prev_line(&window_start, window_width);
- }
delete_at_point(&cursor);
break;
default:
- if (same_point(&cursor, &window_end)) {
- next_line(&window_start, window_width);
- }
insert_at_point(&cursor, input);
- move_point_backward(&cursor);
- if (element(&cursor) == '\n') {
- next_line(&window_start, window_width);
- }
- move_point_forward(&cursor);
}
}
+ if (element(&cursor) == 0) {
+ move_point_backward(&cursor);
+ }
}
endwin();