summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/version.c2
-rw-r--r--src/window.c26
2 files changed, 27 insertions, 1 deletions
diff --git a/src/version.c b/src/version.c
index 358d4b5a5..66893a20c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 240,
+/**/
239,
/**/
238,
diff --git a/src/window.c b/src/window.c
index 28b9660b8..0ee1ad40a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -722,6 +722,12 @@ win_split_ins(size, flags, newwin, dir)
need_status = STATUS_HEIGHT;
}
+#ifdef FEAT_GUI
+ /* May be needed for the scrollbars that are going to change. */
+ if (gui.in_use)
+ out_flush();
+#endif
+
#ifdef FEAT_VERTSPLIT
if (flags & WSP_VERT)
{
@@ -4071,6 +4077,12 @@ win_alloc(after)
if (newwin != NULL)
{
+#ifdef FEAT_AUTOCMD
+ /* Don't execute autocommands while the window is not properly
+ * initialized yet. gui_create_scrollbar() may trigger a FocusGained
+ * event. */
+ ++autocmd_block;
+#endif
/*
* link the window in the window list
*/
@@ -4100,7 +4112,6 @@ win_alloc(after)
#ifdef FEAT_GUI
if (gui.in_use)
{
- out_flush();
gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT],
SBAR_LEFT, newwin);
gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT],
@@ -4114,6 +4125,9 @@ win_alloc(after)
#ifdef FEAT_FOLDING
foldInitWin(newwin);
#endif
+#ifdef FEAT_AUTOCMD
+ --autocmd_block;
+#endif
}
return newwin;
}
@@ -4130,6 +4144,12 @@ win_free(wp, tp)
{
int i;
+#ifdef FEAT_AUTOCMD
+ /* Don't execute autocommands while the window is halfway being deleted.
+ * gui_mch_destroy_scrollbar() may trigger a FocusGained event. */
+ ++autocmd_block;
+#endif
+
#ifdef FEAT_MZSCHEME
mzscheme_window_free(wp);
#endif
@@ -4188,6 +4208,10 @@ win_free(wp, tp)
win_remove(wp, tp);
vim_free(wp);
+
+#ifdef FEAT_AUTOCMD
+ --autocmd_block;
+#endif
}
/*