Mercurial > vim
comparison src/proto/change.pro @ 16660:04c2614af21c v8.1.1332
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
commit https://github.com/vim/vim/commit/fe1ade0a78a70a4c7ddaebb6964497f037f4997a
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 14 21:20:36 2019 +0200
patch 8.1.1332: cannot flush listeners without redrawing, mix of changes
Problem: Cannot flush change listeners without also redrawing. The line
numbers in the list of changes may become invalid.
Solution: Add listener_flush(). Invoke listeners before adding a change
that makes line numbers invalid.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 14 May 2019 21:30:06 +0200 |
parents | 0daf9eca3541 |
children | 978bcd70883d |
comparison
equal
deleted
inserted
replaced
16659:155423e5a8fd | 16660:04c2614af21c |
---|---|
1 /* change.c */ | 1 /* change.c */ |
2 void change_warning(int col); | 2 void change_warning(int col); |
3 void changed(void); | 3 void changed(void); |
4 void changed_internal(void); | 4 void changed_internal(void); |
5 void f_listener_add(typval_T *argvars, typval_T *rettv); | 5 void f_listener_add(typval_T *argvars, typval_T *rettv); |
6 void f_listener_flush(typval_T *argvars, typval_T *rettv); | |
6 void f_listener_remove(typval_T *argvars, typval_T *rettv); | 7 void f_listener_remove(typval_T *argvars, typval_T *rettv); |
7 void invoke_listeners(void); | 8 void invoke_listeners(buf_T *buf); |
8 void changed_bytes(linenr_T lnum, colnr_T col); | 9 void changed_bytes(linenr_T lnum, colnr_T col); |
9 void inserted_bytes(linenr_T lnum, colnr_T col, int added); | 10 void inserted_bytes(linenr_T lnum, colnr_T col, int added); |
10 void appended_lines(linenr_T lnum, long count); | 11 void appended_lines(linenr_T lnum, long count); |
11 void appended_lines_mark(linenr_T lnum, long count); | 12 void appended_lines_mark(linenr_T lnum, long count); |
12 void deleted_lines(linenr_T lnum, long count); | 13 void deleted_lines(linenr_T lnum, long count); |