diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-12-18 18:14:47 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-12-18 18:14:47 +0100 |
commit | c9e649ae816cdff0d1da8a97d40e695c6d3991bd (patch) | |
tree | b9e52b1126c83609c9b5dae5305e535bc4002a10 /src/proto | |
parent | 606d45ccd8a2ad2956e2729f6135fd79fd2f6d72 (diff) | |
download | vim-git-c9e649ae816cdff0d1da8a97d40e695c6d3991bd.tar.gz |
patch 8.0.1405: duplicated code for getting a typed characterv8.0.1405
Problem: Duplicated code for getting a typed character. CursorHold is
called too often in the GUI. (lilydjwg)
Solution: Refactor code to move code up from mch_inchar(). Don't fire
CursorHold if feedkeys() was used. (closes #2451)
Diffstat (limited to 'src/proto')
-rw-r--r-- | src/proto/gui.pro | 3 | ||||
-rw-r--r-- | src/proto/ui.pro | 1 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/proto/gui.pro b/src/proto/gui.pro index 26466ae02..baad47fe4 100644 --- a/src/proto/gui.pro +++ b/src/proto/gui.pro @@ -29,7 +29,8 @@ int gui_outstr_nowrap(char_u *s, int len, int flags, guicolor_T fg, guicolor_T b void gui_undraw_cursor(void); void gui_redraw(int x, int y, int w, int h); int gui_redraw_block(int row1, int col1, int row2, int col2, int flags); -int gui_wait_for_chars(long wtime); +int gui_wait_for_chars(long wtime, int tb_change_cnt); +int gui_inchar(char_u *buf, int maxlen, long wtime, int tb_change_cnt); void gui_send_mouse_event(int button, int x, int y, int repeated_click, int_u modifiers); int gui_xy2colrow(int x, int y, int *colp); void gui_menu_cb(vimmenu_T *menu); diff --git a/src/proto/ui.pro b/src/proto/ui.pro index 4cf87b44f..ac830f0fc 100644 --- a/src/proto/ui.pro +++ b/src/proto/ui.pro @@ -2,6 +2,7 @@ void ui_write(char_u *s, int len); void ui_inchar_undo(char_u *s, int len); int ui_inchar(char_u *buf, int maxlen, long wtime, int tb_change_cnt); +int ui_wait_for_chars_or_timer(long wtime, int (*wait_func)(long wtime, int *interrupted, int ignore_input), int *interrupted, int ignore_input); int ui_char_avail(void); void ui_delay(long msec, int ignoreinput); void ui_suspend(void); |