case '?':
case 'h':
help_view();
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
mkVIZrow1
break;
case 'B':
break;
case 'f':
fields_utility();
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
break;
case 'g':
win_select(0);
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);
+ if (pid) {
+ inspection_utility(pid);
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
+ }
}
}
break;
case 'Z':
wins_colors();
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
mkVIZrow1
break;
case '0':
};
int i;
+ Frames_signal = BREAK_off;
switch (ch) {
case 0: // ignored (always)
case kbd_ESC: // ignored (sometimes)
for (i = 0; i < MAXTBL(key_tab); ++i)
if (strchr(key_tab[i].keys, ch)) {
key_tab[i].func(ch);
- Frames_signal = BREAK_kbd;
+ if (Frames_signal == BREAK_off)
+ Frames_signal = BREAK_kbd;
goto all_done;
}
};
// deal with potential signal(s) since the last time around...
if (Frames_signal) {
- if (Frames_signal == BREAK_sig) TAGGED_TOSS;
+ if (Frames_signal == BREAK_sig
+ || (Frames_signal == BREAK_screen))
+ TAGGED_TOSS;
zap_fieldstab();
}
/* Used to manipulate (and document) the Frames_signal states */
enum resize_states {
- BREAK_off = 0, BREAK_kbd, BREAK_sig, BREAK_autox
+ BREAK_off = 0, BREAK_kbd, BREAK_sig, BREAK_autox, BREAK_screen
};
/* This typedef just ensures consistent 'process flags' handling */