diff options
| author | bfredl <bjorn.linse@gmail.com> | 2024-03-28 15:27:32 +0100 |
|---|---|---|
| committer | bfredl <bjorn.linse@gmail.com> | 2024-03-29 08:15:28 +0100 |
| commit | 2e4e12756a697d4767ec294e1f268384395e7a7f (patch) | |
| tree | 5dc431001eefa5e4dc26651eea1e7c1dcd093f76 /src/nvim/window.c | |
| parent | e2224a7933b6e30ab6efb0b7ad4e3f26da57c226 (diff) | |
| download | rneovim-2e4e12756a697d4767ec294e1f268384395e7a7f.tar.gz rneovim-2e4e12756a697d4767ec294e1f268384395e7a7f.tar.bz2 rneovim-2e4e12756a697d4767ec294e1f268384395e7a7f.zip | |
feat(ui): indicate margins for the area used by win_viewport
Problem: using win_viewport for implementing smooth scrolling in an external
UI might run into problems when winbar or borders is used, as there is
no indication that the entire grid is not used for scrolled buffer text.
Solution: add `win_viewport_margins` event.
Diffstat (limited to 'src/nvim/window.c')
| -rw-r--r-- | src/nvim/window.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/nvim/window.c b/src/nvim/window.c index c9c2124730..6d85e088b5 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -6744,6 +6744,13 @@ void win_set_inner_size(win_T *wp, bool valid_cursor) wp->w_width_outer = (wp->w_width_inner + win_border_width(wp)); wp->w_winrow_off = wp->w_border_adj[0] + wp->w_winbar_height; wp->w_wincol_off = wp->w_border_adj[3]; + + if (ui_has(kUIMultigrid)) { + ui_call_win_viewport_margins(wp->w_grid_alloc.handle, wp->handle, + wp->w_winrow_off, wp->w_border_adj[2], + wp->w_wincol_off, wp->w_border_adj[1]); + } + wp->w_redr_status = true; } |