diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/drawline.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c index a05fb4e08e..fcac837993 100644 --- a/src/nvim/drawline.c +++ b/src/nvim/drawline.c @@ -2967,16 +2967,17 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange, wlv.need_showbreak = true; } if (statuscol.draw) { - if (wlv.row == startrow + wlv.filler_lines + 1 - || wlv.row == startrow + wlv.filler_lines) { - // Re-evaluate 'statuscolumn' for the first wrapped row and non filler line - statuscol.textp = NULL; - } else if (statuscol.textp) { + if (wlv.row == startrow + wlv.filler_lines) { + statuscol.textp = NULL; // re-evaluate for first non-filler line + } else if (vim_strchr(p_cpo, CPO_NUMCOL) && wlv.row > startrow + wlv.filler_lines) { + statuscol.draw = false; // don't draw status column if "n" is in 'cpo' + } else if (wlv.row == startrow + wlv.filler_lines + 1) { + statuscol.textp = NULL; // re-evaluate for first wrapped line + } else { // Draw the already built 'statuscolumn' on the next wrapped or filler line statuscol.textp = statuscol.text; statuscol.hlrecp = statuscol.hlrec; - } // Fall back to default columns if the 'n' flag isn't in 'cpo' - statuscol.draw = vim_strchr(p_cpo, CPO_NUMCOL) == NULL; + } } wlv.filler_todo--; virt_line_offset = -1; |