From f40fc402d4cc4b2bbb1edb09aba9f56327bab0f7 Mon Sep 17 00:00:00 2001 From: Jim Warner Date: Mon, 13 Jun 2022 00:00:00 -0500 Subject: [PATCH] top: avoid premature forced loss of that bottom window In the commit shown below the bottom window was forced off if a full screen replacement function was invoked. It did so by setting Frames_signal after calling those routines from the keys_global function. However, there was sometimes a possibility such action was premature. At least two of those full screen replacement routines may issue an error message & return without corrupting the screen. As such, forcing off that bottom window is totally unnecessary. It therefore should be preserved. So this commit just moves the setting of Frames_signal to the full screen replacement routines when possible. Reference(s): . May, 2022 - bottom window forced off for some commit d66c1f39b52d53ec279fc638aa4a6352d7672201 Signed-off-by: Jim Warner --- top/top.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/top/top.c b/top/top.c index 3ec422f4..b725f68c 100644 --- a/top/top.c +++ b/top/top.c @@ -2435,6 +2435,9 @@ signify_that: break; } } while (key != 'q' && key != kbd_ESC); + + // signal that we just corrupted entire screen + Frames_signal = BREAK_screen; #undef unSCRL #undef swapEM #undef spewFI @@ -3362,6 +3365,8 @@ signify_that: } } while (key != 'q' && key != kbd_ESC); + // signal that we just corrupted entire screen + Frames_signal = BREAK_screen; #undef mkSEL } // end: inspection_utility @@ -4567,7 +4572,8 @@ signify_that: } while (key != kbdAPPLY && key != kbdABORT); if (key == kbdABORT || key == kbd_ESC) wins_clrhlp(w, 0); - + // signal that we just corrupted entire screen + Frames_signal = BREAK_screen; #undef kbdABORT #undef kbdAPPLY } // end: wins_colors @@ -5275,6 +5281,8 @@ signify_that: default: goto signify_that; } + // signal that we just corrupted entire screen + Frames_signal = BREAK_screen; } // end: help_view @@ -5413,8 +5421,6 @@ static void keys_global (int ch) { case '?': case 'h': help_view(); - // signal that we just corrupted entire screen - Frames_signal = BREAK_screen; mkVIZrow1 break; case 'B': @@ -5439,8 +5445,6 @@ static void keys_global (int ch) { break; case 'f': fields_utility(); - // signal that we just corrupted entire screen - Frames_signal = BREAK_screen; break; case 'g': win_select(0); @@ -5523,18 +5527,12 @@ static void keys_global (int ch) { pid = get_int(fmtmk(N_fmt(YINSP_pidsee_fmt), def)); if (pid > GET_NUM_ESC) { if (pid == GET_NUM_NOT) pid = def; - if (pid) { - inspection_utility(pid); - // signal that we just corrupted entire screen - Frames_signal = BREAK_screen; - } + if (pid) inspection_utility(pid); } } break; case 'Z': wins_colors(); - // signal that we just corrupted entire screen - Frames_signal = BREAK_screen; mkVIZrow1 break; case '0':