All checks were successful
CI Code / Check spelling (pull_request) Successful in 16s
CI Code / Check coding style (pull_request) Successful in 2m15s
CI Code / Code Coverage (pull_request) Successful in 2m35s
CI Code / Linux (debian) (pull_request) Successful in 4m35s
CI Code / Linux (ubuntu) (pull_request) Successful in 4m46s
CI Code / Linux (arch) (pull_request) Successful in 5m32s
Builds on the upstream "guard terminal writes while suspended" fix. That fix keeps isendwin() a valid "suspended" signal by guarding stray writes (_inp_write, beep, flash) so the existing isendwin() checks in ui_update/ui_resize/ui_redraw hold. That is correct but fail-open: any future unguarded doupdate()/refresh() reachable during an editor session clears isendwin() and the ~10Hz ui_update() repaints over the editor again (the original bug class). Track suspension explicitly with a ui_suspended flag set in ui_suspend()/ui_resume() and gate the three redraw entry points on ui_suspended || isendwin() via _ui_redraw_suspended(). The flag is set exactly at the suspend/resume boundary, so the dominant repaint path fails safe regardless of isendwin() flapping. isendwin() is kept in the condition for the shutdown/closed-screen case.