Mercurial > vim
diff src/term.c @ 3068:0787bb5f387b v7.3.306
updated for version 7.3.306
Problem: When closing a window there is a chance that deleting a scrollbar
triggers a GUI resize, which uses the window while it is not in a
valid state.
Solution: Set the buffer pointer to NULL to be able to detect the invalid
situation. Fix a few places that used the buffer pointer
incorrectly.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Wed, 14 Sep 2011 14:43:25 +0200 |
parents | 8bd38abda314 |
children | 12bb368fef2c |
line wrap: on
line diff
--- a/src/term.c +++ b/src/term.c @@ -3017,12 +3017,20 @@ set_shellsize(width, height, mustset) if (width < 0 || height < 0) /* just checking... */ return; - if (State == HITRETURN || State == SETWSIZE) /* postpone the resizing */ + if (State == HITRETURN || State == SETWSIZE) { + /* postpone the resizing */ State = SETWSIZE; return; } + /* curwin->w_buffer can be NULL when we are closing a window and the + * buffer has already been closed and removing a scrollbar causes a resize + * event. Don't resize then, it will happen after entering another buffer. + */ + if (curwin->w_buffer == NULL) + return; + ++busy; #ifdef AMIGA