diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-05-13 23:24:14 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-13 23:24:14 +0200 |
commit | 9e0982a1a2f7178d4492592627c5ef92576fc9ee (patch) | |
tree | 7d35c6e32cfcb8b620f2c7be7fd5f3aa15416589 /src/nvim/fileio.c | |
parent | e882460e52d4d6770535350625ac9fa62031a4de (diff) | |
parent | 74751117eb88f584bd61f6f2a85758bcfd41fe43 (diff) | |
download | rneovim-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.c | 11 |
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 |