ui/ncurses: Clear remaining space when drawing help line
authorSamuel Mendoza-Jonas <sam@mendozajonas.com>
Fri, 12 Jan 2018 04:35:20 +0000 (15:35 +1100)
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>
Mon, 12 Feb 2018 02:47:13 +0000 (13:47 +1100)
When drawing the screen's help line clear each character after the new
help line to avoid stale parts of the previous screen's help line
remaining on the screen.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
ui/ncurses/nc-scr.c

index a02627bae946b761b78484c40fd306022aaed63d..e95c0ea361e893dae68b14fb2d0fcb4e8d04e208 100644 (file)
@@ -56,7 +56,7 @@ int nc_scr_unpost(struct nc_scr *scr)
 
 void nc_scr_frame_draw(struct nc_scr *scr)
 {
-       int ltitle_len, rtitle_len;
+       int ltitle_len, rtitle_len, help_len;
 
        DBGS("ltitle '%s'\n", scr->frame.ltitle);
        DBGS("rtitle '%s'\n", scr->frame.rtitle);
@@ -77,6 +77,10 @@ void nc_scr_frame_draw(struct nc_scr *scr)
 
        mvwhline(scr->main_ncw, LINES - nc_scr_pos_help_sep, 1, ACS_HLINE,
                COLS - 2);
+       help_len = 1 + strlen(scr->frame.help);
+       if (help_len < COLS)
+               mvwhline(scr->main_ncw, LINES - nc_scr_pos_help, help_len, ' ',
+                               COLS - help_len);
        mvwaddstr(scr->main_ncw, LINES - nc_scr_pos_help, 1, scr->frame.help);
        nc_scr_status_draw(scr);
 }