aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/fileio.c
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2019-05-13 23:24:14 +0200
committerGitHub <noreply@github.com>2019-05-13 23:24:14 +0200
commit9e0982a1a2f7178d4492592627c5ef92576fc9ee (patch)
tree7d35c6e32cfcb8b620f2c7be7fd5f3aa15416589 /src/nvim/fileio.c
parente882460e52d4d6770535350625ac9fa62031a4de (diff)
parent74751117eb88f584bd61f6f2a85758bcfd41fe43 (diff)
downloadrneovim-9e0982a1a2f7178d4492592627c5ef92576fc9ee.tar.gz
rneovim-9e0982a1a2f7178d4492592627c5ef92576fc9ee.tar.bz2
rneovim-9e0982a1a2f7178d4492592627c5ef92576fc9ee.zip
Merge pull request #9985 from bfredl/shenanigans
Fix aucmd_win issues: crashes and redrawing errors.
Diffstat (limited to 'src/nvim/fileio.c')
-rw-r--r--src/nvim/fileio.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/nvim/fileio.c b/src/nvim/fileio.c
index 717ae6e602..507bf3c032 100644
--- a/src/nvim/fileio.c
+++ b/src/nvim/fileio.c
@@ -11,6 +11,7 @@
#include <fcntl.h>
#include "nvim/vim.h"
+#include "nvim/api/private/handle.h"
#include "nvim/ascii.h"
#include "nvim/fileio.h"
#include "nvim/buffer.h"
@@ -47,6 +48,7 @@
#include "nvim/state.h"
#include "nvim/strings.h"
#include "nvim/ui.h"
+#include "nvim/ui_compositor.h"
#include "nvim/types.h"
#include "nvim/undo.h"
#include "nvim/window.h"
@@ -6586,6 +6588,8 @@ void aucmd_prepbuf(aco_save_T *aco, buf_T *buf)
block_autocmds(); // We don't want BufEnter/WinEnter autocommands.
if (need_append) {
win_append(lastwin, aucmd_win);
+ handle_register_window(aucmd_win);
+ win_config_float(aucmd_win, aucmd_win->w_float_config);
}
// Prevent chdir() call in win_enter_ext(), through do_autochdir()
int save_acd = p_acd;
@@ -6625,6 +6629,13 @@ void aucmd_restbuf(aco_save_T *aco)
win_found:
win_remove(curwin, NULL);
+ handle_unregister_window(curwin);
+ if (curwin->w_grid.chars != NULL) {
+ ui_comp_remove_grid(&curwin->w_grid);
+ ui_call_win_hide(curwin->w_grid.handle);
+ grid_free(&curwin->w_grid);
+ }
+
aucmd_win_used = false;
last_status(false); // may need to remove last status line