Mercurial > vim
comparison src/edit.c @ 34703:d432af20fe54 v9.1.0230
patch 9.1.0230: TextChanged autocommand not triggered under some circumstances
Commit: https://github.com/vim/vim/commit/86032702932995db74fed265ba99ae0c823cb75d
Author: Christian Brabandt <cb@256bit.org>
Date: Sun Mar 31 18:38:09 2024 +0200
patch 9.1.0230: TextChanged autocommand not triggered under some circumstances
Problem: TextChanged autocommand not triggered under some circumstances
(Sergey Vlasov)
Solution: Trigger TextChanged when TextChangedI has not been triggered
fixes: #14332
closes: #14339
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 31 Mar 2024 18:45:03 +0200 |
parents | bfd2c0032686 |
children | d537272fa503 |
comparison
equal
deleted
inserted
replaced
34702:2c3f939d46bf | 34703:d432af20fe54 |
---|---|
843 if (cmdchar != 'r' && cmdchar != 'v' && c != Ctrl_C) | 843 if (cmdchar != 'r' && cmdchar != 'v' && c != Ctrl_C) |
844 ins_apply_autocmds(EVENT_INSERTLEAVE); | 844 ins_apply_autocmds(EVENT_INSERTLEAVE); |
845 did_cursorhold = FALSE; | 845 did_cursorhold = FALSE; |
846 | 846 |
847 // ins_redraw() triggers TextChangedI only when no characters | 847 // ins_redraw() triggers TextChangedI only when no characters |
848 // are in the typeahead buffer, so only reset curbuf->b_last_changedtick | 848 // are in the typeahead buffer, so reset curbuf->b_last_changedtick only |
849 // if the TextChangedI was not blocked by char_avail() (e.g. using :norm!) | 849 // if the TextChangedI was not blocked by char_avail() (e.g. using :norm!) |
850 if (!char_avail()) | 850 // and the TextChangeDI autocommand has been trigered |
851 if (!char_avail() && curbuf->b_last_changedtick_i == CHANGEDTICK(curbuf)) | |
851 curbuf->b_last_changedtick = CHANGEDTICK(curbuf); | 852 curbuf->b_last_changedtick = CHANGEDTICK(curbuf); |
852 return (c == Ctrl_O); | 853 return (c == Ctrl_O); |
853 } | 854 } |
854 continue; | 855 continue; |
855 | 856 |