fix(screen): redraw the ruler for a current floating window

Semi-regression. The "ruler" behavior for a floating window
was never really specified but in practice followed the users
cursor movements in normal mode in a focused float, which seems
like a reasonable behavior to now specify.
This commit is contained in:
bfredl
2023-03-13 20:38:21 +01:00
parent f01f18cdf4
commit 0f1e2b6686
4 changed files with 95 additions and 3 deletions

View File

@@ -746,7 +746,7 @@ void show_cursor_info_later(bool force)
|| curwin->w_topfill != curwin->w_stl_topfill
|| empty_line != curwin->w_stl_empty
|| state != curwin->w_stl_state) {
if ((curwin->w_status_height || global_stl_height())) {
if (curwin->w_status_height || global_stl_height()) {
curwin->w_redr_status = true;
} else {
redraw_cmdline = true;

View File

@@ -608,7 +608,7 @@ int showmode(void)
// If the last window has no status line and global statusline is disabled,
// the ruler is after the mode message and must be redrawn
win_T *last = lastwin_nofloating();
win_T *last = curwin->w_floating ? curwin : lastwin_nofloating();
if (redrawing() && last->w_status_height == 0 && global_stl_height() == 0) {
win_redr_ruler(last);
}