diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c index 268c256270..81eb1a6799 100644 --- a/src/main.c +++ b/src/main.c @@ -1356,11 +1356,17 @@ main_loop( else { #ifdef FEAT_TERMINAL - if (curbuf->b_term != NULL && oa.op_type == OP_NOP - && oa.regname == NUL) - terminal_loop(); + if (term_use_loop() && oa.op_type == OP_NOP && oa.regname == NUL) + { + /* If terminal_loop() returns OK we got a key that is handled + * in Normal model. With FAIL the terminal was closed and the + * screen needs to be redrawn. */ + if (terminal_loop() == OK) + normal_cmd(&oa, TRUE); + } + else #endif - normal_cmd(&oa, TRUE); + normal_cmd(&oa, TRUE); } } } |