Mercurial > vim
diff src/ex_docmd.c @ 13829:044337cbf854 v8.0.1786
patch 8.0.1786: no test for 'termwinkey'
commit https://github.com/vim/vim/commit/b2ac14c0b5e23f8ab97c5c784bcd83e13ba8ded3
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 1 18:47:59 2018 +0200
patch 8.0.1786: no test for 'termwinkey'
Problem: No test for 'termwinkey'.
Solution: Add a test. Make feedkeys() handle terminal_loop() returning
before characters are consumed.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 01 May 2018 19:00:07 +0200 |
parents | 378f9f8e6d8f |
children | 4b35f2835ce4 |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -10340,7 +10340,21 @@ exec_normal(int was_typed) && typebuf.tb_len > 0)) && !got_int) { update_topline_cursor(); - normal_cmd(&oa, TRUE); /* execute a Normal mode cmd */ +#ifdef FEAT_TERMINAL + if (term_use_loop() + && oa.op_type == OP_NOP && oa.regname == NUL + && !VIsual_active) + { + /* If terminal_loop() returns OK we got a key that is handled + * in Normal model. With FAIL we first need to position the + * cursor and the screen needs to be redrawn. */ + if (terminal_loop(TRUE) == OK) + normal_cmd(&oa, TRUE); + } + else +#endif + /* execute a Normal mode cmd */ + normal_cmd(&oa, TRUE); } }