summaryrefslogtreecommitdiff
path: root/src/proto
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-12-18 18:14:47 +0100
committerBram Moolenaar <Bram@vim.org>2017-12-18 18:14:47 +0100
commitc9e649ae816cdff0d1da8a97d40e695c6d3991bd (patch)
treeb9e52b1126c83609c9b5dae5305e535bc4002a10 /src/proto
parent606d45ccd8a2ad2956e2729f6135fd79fd2f6d72 (diff)
downloadvim-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.pro3
-rw-r--r--src/proto/ui.pro1
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);