aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/ui.c
diff options
context:
space:
mode:
authorOmar Sandoval <osandov@osandov.com>2015-05-17 01:22:46 -0700
committerJustin M. Keyes <justinkz@gmail.com>2015-07-26 23:38:35 -0400
commitfa48fc667a1d27db6826075e23caff4f396f191a (patch)
tree89048cb803717bbb43b653df2e3c23a164f1741f /src/nvim/ui.c
parent61e4a320658ffd64103795cf9aeb9a53c1ac2032 (diff)
downloadrneovim-fa48fc667a1d27db6826075e23caff4f396f191a.tar.gz
rneovim-fa48fc667a1d27db6826075e23caff4f396f191a.tar.bz2
rneovim-fa48fc667a1d27db6826075e23caff4f396f191a.zip
api: Simplify UI API on mode change
Currently, there are two functions in the UI API that are called when the mode changes: insert_mode() and normal_mode(). These can be folded into a single mode_change() entrypoint which can do whatever it wants based on the mode it is passed, limited to INSERT and NORMAL for now.
Diffstat (limited to 'src/nvim/ui.c')
-rw-r--r--src/nvim/ui.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/src/nvim/ui.c b/src/nvim/ui.c
index dc2bc0898c..2e8fc7a6bb 100644
--- a/src/nvim/ui.c
+++ b/src/nvim/ui.c
@@ -121,7 +121,7 @@ void ui_update_encoding(void)
// May update the shape of the cursor.
void ui_cursor_shape(void)
{
- ui_change_mode();
+ ui_mode_change();
}
void ui_refresh(void)
@@ -469,25 +469,18 @@ static void flush_cursor_update(void)
// Notify that the current mode has changed. Can be used to change cursor
// shape, for example.
-static void ui_change_mode(void)
+static void ui_mode_change(void)
{
- static int showing_insert_mode = MAYBE;
-
+ int mode;
if (!full_screen) {
return;
}
-
- if (State & INSERT) {
- if (showing_insert_mode != TRUE) {
- UI_CALL(insert_mode);
- }
- showing_insert_mode = TRUE;
- } else {
- if (showing_insert_mode != FALSE) {
- UI_CALL(normal_mode);
- }
- showing_insert_mode = FALSE;
- }
+ /* Get a simple UI mode out of State. */
+ if (State & INSERT)
+ mode = INSERT;
+ else
+ mode = NORMAL;
+ UI_CALL(mode_change, mode);
conceal_check_cursur_line();
}