Mercurial > vim
comparison src/getchar.c @ 2721:417c04135ca2 v7.3.137
updated for version 7.3.137
Problem: When 'lazyredraw' is set the screen may not be updated. (Ivan
Krasilnikov)
Solution: Call update_screen() before waiting for input.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 03 Mar 2011 15:04:08 +0100 |
parents | 6a2e4860134b |
children | 2e72d84e8965 |
comparison
equal
deleted
inserted
replaced
2720:3adc6dd2d122 | 2721:417c04135ca2 |
---|---|
2708 */ | 2708 */ |
2709 /* In insert mode a screen update is skipped when characters | 2709 /* In insert mode a screen update is skipped when characters |
2710 * are still available. But when those available characters | 2710 * are still available. But when those available characters |
2711 * are part of a mapping, and we are going to do a blocking | 2711 * are part of a mapping, and we are going to do a blocking |
2712 * wait here. Need to update the screen to display the | 2712 * wait here. Need to update the screen to display the |
2713 * changed text so far. */ | 2713 * changed text so far. Also for when 'lazyredraw' is set and |
2714 if ((State & INSERT) && advance && must_redraw != 0) | 2714 * redrawing was postponed because there was something in the |
2715 * input buffer (e.g., termresponse). */ | |
2716 if (((State & INSERT) || p_lz) && advance && must_redraw != 0) | |
2715 { | 2717 { |
2716 update_screen(0); | 2718 update_screen(0); |
2717 setcursor(); /* put cursor back where it belongs */ | 2719 setcursor(); /* put cursor back where it belongs */ |
2718 } | 2720 } |
2719 | 2721 |