fix #H8753 - curses message window anomalies
Autodescribe feedback and multi-digit count prompts are always shown on the last line of the message window and are suppressed from message history (both ^P and DUMPLOG). When the message window is using all available lines, the last one was being overwritten (until the count or the feedback was completed or dismissed, then last line returned). Adopt the suggestion that it be scrolled up a line instead of being overwritten. [I haven't been able to reproduce the reported problem where shorter overlaid text left some of longer underlying text visible but that should now become moot.] Bonus fix: while testing, I noticed that if your screen only has room for a one-line message window and you used ESC to cancel 'pick a spot with cursor' prompting before moving the cursor, the prompt was left intact on the message line. tty erases it in that situation, but the clear_nhwindow(WIN_MESSAGE) was a no-op for curses because it usually doesn't erase old messages. This changes the curses behavior when the core asks it to erase the message window: now it forces one blank line of fake autodesribe feedback (causing the prompt or other most recent message to scroll off top), then removes that fake feedback (leaving a blank message line). For multi-line message window, the old messages scroll up by one line sooner than they would when waiting for the next real message but are otherwise unaffected.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.3 $ $NHDT-Date: 1558045586 2019/05/16 22:26:26 $
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.5 $ $NHDT-Date: 1558171542 2019/05/18 09:25:42 $
|
||||
|
||||
This fixes36.3 file is here to capture information about updates in the 3.6.x
|
||||
lineage following the release of 3.6.2 in May 2019. Please note, however,
|
||||
@@ -26,6 +26,12 @@ Platform- and/or Interface-Specific Fixes or Features
|
||||
curses: very tall menus tried to use selector characters a-z, A-Z, and 0-9,
|
||||
but 0-9 should be reserved for counts and if the display was tall
|
||||
enough for more than 62 entries, arbitrary ASCII punctuation got used
|
||||
curses: when all available lines in the message window are in use,
|
||||
autodescribe feedback for 'pick a position with cursor' overwrote
|
||||
the last line (usually the 'pick a position' prompt/hint), sometimes
|
||||
leaving part of longer underlying line's text visible
|
||||
curses: if message window is only one line, cancelling some prompts with ESC
|
||||
left the prompts visible on the message line instead of erasing them
|
||||
Windows: some startup error messages were not being delivered successfully
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user