implement "--More--" for Qt

Support MSGTYPE=stop by having qt_display_nhwindow(WIN_MESSAGE,TRUE)
issue a tty-style --More-- prompt.  For popup_dialog Off, the prompt
gets appended to the most recent message; for popup_dialog On, it is
issued via a popup and not displayed in the message window.

It accepts <space>, ^J, ^M, and ^[ (ESC) to dismiss.  There's no way
to dismiss it with the mouse (for !popup_dialog) which might need
some fix....

Several adventures along the way.  The '^C-in-parent-terminal triggers
infinite loop repeatedly complaining about "event loop already running"'
is now a one-shot complaint.  It isn't fixed but the severity of
having it happen is greatly reduced.
This commit is contained in:
PatR
2020-10-01 03:16:14 -07:00
parent 92902fd128
commit 2e90c1ebd4
7 changed files with 193 additions and 55 deletions
+9 -5
View File
@@ -6,11 +6,15 @@ whether to [ignore], [report], or [restart] will eventually appear
(it's slow). That should be repressed even if the report choice could
be directed at nethack.org.
Urgent: launching Qt nethack as a synchronous subprocess (ie, no
trailing '&') from a Terminal window, changing focus back to that
terminal after NetHack has started, and typing ^C sends the program
into an endless loop with repeated messages to stderr (the terminal)
complaining that the event loop is already running.
Launching Qt nethack as a synchronous subprocess (ie, no trailing '&')
from a Terminal window, changing focus back to that terminal after
NetHack has started, and typing ^C was sending the program into an
endless loop in qt_nhgetch() with repeated messages to stderr
(the terminal) complaining that the event loop is already running.
Triggered by yn_function("Really quit?") in the core. That situation
has been reduced to a single event loop complaint, do downgraded from
"Urgent", but the prompt is auto-answered with ESC instead of letting
the user respond.
On OSX, if the program is run from nethackdir/nethack rather than from
NetHack.app/Contents/MacOS/nethack (plus having NetHack.app/Contents/