curses: message window border w/ align_status:left

This fixes the missing message window border when restoring with
align_status:left (which narrows and forces that window to the right).
It can't possibly be the correct way to fix things but does work.

This was not a problem with 3.6.4 (the most recent pre-3.7 playground
I have on hand) but I don't have the energy to use 'git bisect' to
track done when it started to whether the cause is discernable.  The
message history is put into place without going through putstr() so
differs from normal message handling.
This commit is contained in:
PatR
2023-03-24 17:51:21 -07:00
parent 8a0484321e
commit e0e9d1d8b2
2 changed files with 19 additions and 0 deletions

View File

@@ -984,6 +984,22 @@ curses_putmsghistory(const char *msg, boolean restoring_msghist)
}
initd = FALSE; /* reset */
}
/*
* FIXME:
* restoring a game with window borders on and align_status:left
* (which pushes the starting column of the message window to the
* right) brings up an initial display where the border around
* the message window is missing. Once a new message causes it
* to be scrolled, its border appears. This absurd hack forces
* that to be shown right away.
*/
if (restoring_msghist && curses_window_has_border(WIN_MESSAGE)) {
WINDOW *win = curses_get_nhwin(WIN_MESSAGE);
box(win, 0, 0);
wrefresh(win);
}
}
/*cursmesg.c*/