diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-12-07 11:36:34 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-07 11:36:34 +0800 |
commit | ed23cd3e50e778604e45e85bc939271a7759ca1f (patch) | |
tree | 41409a2e8d4d8971727af43495aa00a1ce75d236 /src/nvim/window.c | |
parent | eab71e7875782144ca6c62269fc6f333bc061001 (diff) | |
download | rneovim-ed23cd3e50e778604e45e85bc939271a7759ca1f.tar.gz rneovim-ed23cd3e50e778604e45e85bc939271a7759ca1f.tar.bz2 rneovim-ed23cd3e50e778604e45e85bc939271a7759ca1f.zip |
fix(float): fix crash with bufpos and non-existent window (#21319)
Diffstat (limited to 'src/nvim/window.c')
-rw-r--r-- | src/nvim/window.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c index 86c936c734..1216bd8dcc 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -843,16 +843,16 @@ void win_config_float(win_T *wp, FloatConfig fconfig) grid_adjust(&grid, &row_off, &col_off); row += row_off; col += col_off; + if (wp->w_float_config.bufpos.lnum >= 0) { + pos_T pos = { wp->w_float_config.bufpos.lnum + 1, + wp->w_float_config.bufpos.col, 0 }; + int trow, tcol, tcolc, tcole; + textpos2screenpos(parent, &pos, &trow, &tcol, &tcolc, &tcole, true); + row += trow - 1; + col += tcol - 1; + } } api_clear_error(&dummy); - if (wp->w_float_config.bufpos.lnum >= 0) { - pos_T pos = { wp->w_float_config.bufpos.lnum + 1, - wp->w_float_config.bufpos.col, 0 }; - int trow, tcol, tcolc, tcole; - textpos2screenpos(parent, &pos, &trow, &tcol, &tcolc, &tcole, true); - row += trow - 1; - col += tcol - 1; - } wp->w_winrow = row; wp->w_wincol = col; } else { |