diff --git a/top/top.c b/top/top.c index 9c046e58..2e8e58cd 100644 --- a/top/top.c +++ b/top/top.c @@ -2506,6 +2506,7 @@ static void fields_utility (void) { spewFI signify_that: + Frames_signal = BREAK_off; putp(Cap_clr_scr); adj_geometry(); @@ -3556,6 +3557,7 @@ static int insp_view_choice (proc_t *p) { int key, curlin = 0, curcol = 0; signify_that: + Frames_signal = BREAK_off; putp(Cap_clr_scr); adj_geometry(); @@ -3678,6 +3680,7 @@ static void inspection_utility (int pid) { // must re-hide cursor since the prompt for a pid made it huge putp((Cursor_state = Cap_curs_hide)); signify_that: + Frames_signal = BREAK_off; putp(Cap_clr_scr); adj_geometry(); @@ -4778,6 +4781,7 @@ static void wins_colors (void) { wins_clrhlp(w, 1); putp((Cursor_state = Cap_curs_huge)); signify_that: + Frames_signal = BREAK_off; putp(Cap_clr_scr); adj_geometry(); @@ -5504,6 +5508,7 @@ static void help_view (void) { putp((Cursor_state = Cap_curs_huge)); signify_that: + Frames_signal = BREAK_off; putp(Cap_clr_scr); adj_geometry(); @@ -5522,22 +5527,26 @@ signify_that: if (key < 1) goto signify_that; switch (key) { + // these keys serve the primary help screen case kbd_ESC: case 'q': break; case '?': case 'h': case 'H': do { - putp(Cap_home); +signify_this: + Frames_signal = BREAK_off; + putp(Cap_clr_scr); + adj_geometry(); show_special(1, fmtmk(N_unq(WINDOWS_help_fmt) , w->grpname , Winstk[0].rc.winname, Winstk[1].rc.winname , Winstk[2].rc.winname, Winstk[3].rc.winname)); putp(Cap_clr_eos); fflush(stdout); - if (Frames_signal || (key = iokey(IOKEY_ONCE)) < 1) { - adj_geometry(); - putp(Cap_clr_scr); - } else w = win_select(key); - } while (key != kbd_ENTER && key != kbd_ESC); + if (Frames_signal || (key = iokey(IOKEY_ONCE)) < 1) + goto signify_this; + else w = win_select(key); + // these keys serve the secondary help screen + } while (key != kbd_ENTER && key != kbd_ESC && key != 'q'); break; default: goto signify_that;