summaryrefslogtreecommitdiff
path: root/input.c
diff options
context:
space:
mode:
Diffstat (limited to 'input.c')
-rw-r--r--input.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/input.c b/input.c
index 36670e2..3167a91 100644
--- a/input.c
+++ b/input.c
@@ -33,7 +33,7 @@ void editor_process_keypress(struct editor_state *editor, SDL_Keysym *keysym)
editor_insert_char(editor, '\t');
if (keysym->sym == SDLK_ESCAPE)
- editor->mode = EDITOR_MODE_NORMAL;
+ editor_set_mode(editor, EDITOR_MODE_NORMAL);
return;
}
@@ -45,7 +45,7 @@ void editor_process_keypress(struct editor_state *editor, SDL_Keysym *keysym)
editor_run_command(editor);
if (keysym->sym == SDLK_ESCAPE)
- editor->mode = EDITOR_MODE_NORMAL;
+ editor_set_mode(editor, EDITOR_MODE_NORMAL);
return;
}
@@ -85,30 +85,28 @@ void editor_process_keypress(struct editor_state *editor, SDL_Keysym *keysym)
editor_delete_char(editor);
break;
case SDLK_i:
- editor->mode = EDITOR_MODE_INSERT;
- editor->pressed_insert_key = 1;
+ editor_set_mode(editor, EDITOR_MODE_INSERT);
break;
case SDLK_l:
if (keysym->mod & KMOD_SHIFT)
editor_move_end(editor);
else
editor_move_right(editor);
- editor->mode = EDITOR_MODE_INSERT;
- editor->pressed_insert_key = 1;
+ editor_set_mode(editor, EDITOR_MODE_INSERT);
break;
case SDLK_o:
if (keysym->mod & KMOD_SHIFT)
editor_add_line_above(editor);
else
editor_add_line_below(editor);
- editor->mode = EDITOR_MODE_INSERT;
- editor->pressed_insert_key = 1;
+ editor_set_mode(editor, EDITOR_MODE_INSERT);
break;
case SDLK_SLASH:
editor_find(editor);
break;
case SDLK_SEMICOLON:
- editor->mode = EDITOR_MODE_COMMAND;
+ if (keysym->mod & KMOD_SHIFT)
+ editor_set_mode(editor, EDITOR_MODE_COMMAND);
break;
}
}