diff options
author | phanium <91544758+phanen@users.noreply.github.com> | 2024-12-16 16:59:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-16 00:59:24 -0800 |
commit | 01a97d2ad75a459cad850d542f9ad7c4467cb380 (patch) | |
tree | bade151d04e5d398e6f6b02de1c834e60b189ba0 /src | |
parent | cc38630d39d2aa99183756d55849117daf6dfbfa (diff) | |
download | rneovim-01a97d2ad75a459cad850d542f9ad7c4467cb380.tar.gz rneovim-01a97d2ad75a459cad850d542f9ad7c4467cb380.tar.bz2 rneovim-01a97d2ad75a459cad850d542f9ad7c4467cb380.zip |
fix(api): nvim_win_set_buf(0, 0) fails if 'winfixbuf' is set #31576
## Problem
With 'winfixbuf' enabled, `nvim_win_set_buf` and `nvim_set_current_buf` fail
even if targeting the already-current buffer.
vim.wo.winfixbuf = true
vim.api.nvim_win_set_buf(0, 0)
vim.api.nvim_set_current_buf(0)
Solution:
Check for this condition.
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/api/vim.c | 2 | ||||
-rw-r--r-- | src/nvim/api/window.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/nvim/api/vim.c b/src/nvim/api/vim.c index 1262af5e40..42fc21deac 100644 --- a/src/nvim/api/vim.c +++ b/src/nvim/api/vim.c @@ -888,7 +888,7 @@ void nvim_set_current_buf(Buffer buffer, Error *err) { buf_T *buf = find_buffer_by_handle(buffer, err); - if (!buf) { + if (!buf || curwin->w_buffer == buf) { return; } diff --git a/src/nvim/api/window.c b/src/nvim/api/window.c index ee7729ce81..f415415fa7 100644 --- a/src/nvim/api/window.c +++ b/src/nvim/api/window.c @@ -59,7 +59,7 @@ void nvim_win_set_buf(Window window, Buffer buffer, Error *err) { win_T *win = find_window_by_handle(window, err); buf_T *buf = find_buffer_by_handle(buffer, err); - if (!win || !buf) { + if (!win || !buf || win->w_buffer == buf) { return; } |