identifying via menu
From the newsgroup: identifying by menu pops up multiple menus in succession if the player picks fewer invent entries than are being granted, but the second and subsequent ones could cover up the message window and hide the feedback from prior ones. If multiple popup menus are needed when identifying, issue --More-- before each menu after the first. The code seemed to be trying to do this already, but it should have used wait_synch() rather than mark_synch(), or perhaps used display_nhwindow(WIN_MESSAGE, TRUE) instead of either one of those. For curses, both mark_synch() and wait_synch() were no-ops. Now they do something. X11's behavior wasn't right either; it seemed to be lagging one message behind (something I had noticed recently and then forgotten about; I still don't remember the context then so don't know whether this fixes that earlier situation).
This commit is contained in:
@@ -150,8 +150,9 @@ init_nhwindows(int* argcp, char** argv)
|
||||
** windows? Or at least all but WIN_INFO? -dean
|
||||
*/
|
||||
void
|
||||
curses_init_nhwindows(int *argcp UNUSED,
|
||||
char **argv UNUSED)
|
||||
curses_init_nhwindows(
|
||||
int *argcp UNUSED,
|
||||
char **argv UNUSED)
|
||||
{
|
||||
#ifdef PDCURSES
|
||||
char window_title[BUFSZ];
|
||||
@@ -745,12 +746,12 @@ curses_ctrl_nhwindow(
|
||||
|
||||
/*
|
||||
mark_synch() -- Don't go beyond this point in I/O on any channel until
|
||||
all channels are caught up to here. Can be an empty call
|
||||
for the moment
|
||||
all channels are caught up to here.
|
||||
*/
|
||||
void
|
||||
curses_mark_synch(void)
|
||||
{
|
||||
curses_refresh_nethack_windows();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -762,6 +763,9 @@ wait_synch() -- Wait until all pending output is complete (*flush*() for
|
||||
void
|
||||
curses_wait_synch(void)
|
||||
{
|
||||
if (curses_got_output())
|
||||
(void) curses_more();
|
||||
curses_mark_synch();
|
||||
/* [do we need 'if (counting) curses_count_window((char *)0);' here?] */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user