diff options
author | luukvbaal <luukvbaal@gmail.com> | 2023-12-22 23:31:07 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-23 06:31:07 +0800 |
commit | e632396bab024ffefd1ed65bb4ac0203a9f491ce (patch) | |
tree | bd8dda8df9346b2730cd62279cc31535337f9a33 /src/nvim/statusline.c | |
parent | 2b0acacb3c2cdd67436846d5117ae323ea7a8fd4 (diff) | |
download | rneovim-e632396bab024ffefd1ed65bb4ac0203a9f491ce.tar.gz rneovim-e632396bab024ffefd1ed65bb4ac0203a9f491ce.tar.bz2 rneovim-e632396bab024ffefd1ed65bb4ac0203a9f491ce.zip |
refactor(drawline): avoid storing info to draw 'statuscolumn' (#26712)
We no longer return to the main loop in win_line() to put column
characters on the screen. Simplify and sync statuscolumn drawing
logic with that of statusline.
Diffstat (limited to 'src/nvim/statusline.c')
-rw-r--r-- | src/nvim/statusline.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/statusline.c b/src/nvim/statusline.c index e249317bd3..563e1d0a5b 100644 --- a/src/nvim/statusline.c +++ b/src/nvim/statusline.c @@ -867,7 +867,7 @@ void draw_tabline(void) /// the v:lnum and v:relnum variables don't have to be updated. /// /// @return The width of the built status column string for line "lnum" -int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, statuscol_T *stcp) +int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, char *buf, statuscol_T *stcp) { // Only update click definitions once per window per redraw. // Don't update when current width is 0, since it will be redrawn again if not empty. @@ -880,7 +880,7 @@ int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, statuscol_T * StlClickRecord *clickrec; char *stc = xstrdup(wp->w_p_stc); - int width = build_stl_str_hl(wp, stcp->text, MAXPATHL, stc, kOptStatuscolumn, OPT_LOCAL, ' ', + int width = build_stl_str_hl(wp, buf, MAXPATHL, stc, kOptStatuscolumn, OPT_LOCAL, ' ', stcp->width, &stcp->hlrec, fillclick ? &clickrec : NULL, stcp); xfree(stc); @@ -888,7 +888,7 @@ int build_statuscol_str(win_T *wp, linenr_T lnum, linenr_T relnum, statuscol_T * stl_clear_click_defs(wp->w_statuscol_click_defs, wp->w_statuscol_click_defs_size); wp->w_statuscol_click_defs = stl_alloc_click_defs(wp->w_statuscol_click_defs, stcp->width, &wp->w_statuscol_click_defs_size); - stl_fill_click_defs(wp->w_statuscol_click_defs, clickrec, stcp->text, stcp->width, false); + stl_fill_click_defs(wp->w_statuscol_click_defs, clickrec, buf, stcp->width, false); } return width; |