diff options
-rw-r--r-- | ui/ncurses/nc-add-url.c | 8 | ||||
-rw-r--r-- | ui/ncurses/nc-boot-editor.c | 8 | ||||
-rw-r--r-- | ui/ncurses/nc-config.c | 8 | ||||
-rw-r--r-- | ui/ncurses/nc-lang.c | 1 | ||||
-rw-r--r-- | ui/ncurses/nc-menu.c | 1 |
5 files changed, 21 insertions, 5 deletions
diff --git a/ui/ncurses/nc-add-url.c b/ui/ncurses/nc-add-url.c index 386d813..cf55b03 100644 --- a/ui/ncurses/nc-add-url.c +++ b/ui/ncurses/nc-add-url.c @@ -43,6 +43,7 @@ struct add_url_screen { bool exit; bool show_help; + bool need_redraw; void (*on_exit)(struct cui *); int label_x; @@ -93,6 +94,7 @@ static void add_url_screen_process_key(struct nc_scr *scr, int key) } else if (screen->show_help) { screen->show_help = false; + screen->need_redraw = true; cui_show_help(screen->cui, _("Retrieve Config"), &add_url_help_text); @@ -106,7 +108,10 @@ static int add_url_screen_post(struct nc_scr *scr) struct add_url_screen *screen = add_url_screen_from_scr(scr); widgetset_post(screen->widgetset); nc_scr_frame_draw(scr); - redrawwin(scr->main_ncw); + if (screen->need_redraw) { + redrawwin(scr->main_ncw); + screen->need_redraw = false; + } wrefresh(screen->scr.main_ncw); return 0; } @@ -224,6 +229,7 @@ struct add_url_screen *add_url_screen_init(struct cui *cui, screen->on_exit = on_exit; screen->label_x = 2; screen->field_x = 25; + screen->need_redraw = false; nc_scr_init(&screen->scr, pb_add_url_screen_sig, 0, cui, add_url_screen_process_key, diff --git a/ui/ncurses/nc-boot-editor.c b/ui/ncurses/nc-boot-editor.c index f78da56..274bd9d 100644 --- a/ui/ncurses/nc-boot-editor.c +++ b/ui/ncurses/nc-boot-editor.c @@ -44,6 +44,7 @@ struct boot_editor { void (*on_exit)(struct cui *cui, struct pmenu_item *item, struct pb_boot_data *bd); + bool need_redraw; int label_x; int field_x; @@ -111,7 +112,10 @@ static int boot_editor_post(struct nc_scr *scr) struct boot_editor *boot_editor = boot_editor_from_scr(scr); widgetset_post(boot_editor->widgetset); nc_scr_frame_draw(scr); - redrawwin(scr->main_ncw); + if (boot_editor->need_redraw) { + redrawwin(scr->main_ncw); + boot_editor->need_redraw = false; + } wrefresh(boot_editor->scr.main_ncw); pad_refresh(boot_editor); return 0; @@ -231,6 +235,7 @@ static void boot_editor_process_key(struct nc_scr *scr, int key) break; case STATE_HELP: boot_editor->state = STATE_EDIT; + boot_editor->need_redraw = true; cui_show_help(boot_editor->cui, _("Boot Option Editor"), &boot_editor_help_text); break; @@ -568,6 +573,7 @@ struct boot_editor *boot_editor_init(struct cui *cui, boot_editor->item = item; boot_editor->on_exit = on_exit; boot_editor->state = STATE_EDIT; + boot_editor->need_redraw = false; int ncols1 = strncols(_("Device tree:")); int ncols2 = strncols(_("Boot arguments:")); diff --git a/ui/ncurses/nc-config.c b/ui/ncurses/nc-config.c index 17cc380..c45df34 100644 --- a/ui/ncurses/nc-config.c +++ b/ui/ncurses/nc-config.c @@ -57,6 +57,7 @@ struct config_screen { bool exit; bool show_help; + bool need_redraw; void (*on_exit)(struct cui *); int scroll_y; @@ -146,6 +147,7 @@ static void config_screen_process_key(struct nc_scr *scr, int key) } else if (screen->show_help) { screen->show_help = false; + screen->need_redraw = true; cui_show_help(screen->cui, _("System Configuration"), &config_help_text); @@ -165,7 +167,10 @@ static int config_screen_post(struct nc_scr *scr) struct config_screen *screen = config_screen_from_scr(scr); widgetset_post(screen->widgetset); nc_scr_frame_draw(scr); - redrawwin(scr->main_ncw); + if (screen->need_redraw) { + redrawwin(scr->main_ncw); + screen->need_redraw = false; + } wrefresh(screen->scr.main_ncw); pad_refresh(screen); return 0; @@ -859,6 +864,7 @@ struct config_screen *config_screen_init(struct cui *cui, screen->cui = cui; screen->on_exit = on_exit; + screen->need_redraw = false; screen->label_x = 2; screen->field_x = 17; diff --git a/ui/ncurses/nc-lang.c b/ui/ncurses/nc-lang.c index 0422ebb..0b87156 100644 --- a/ui/ncurses/nc-lang.c +++ b/ui/ncurses/nc-lang.c @@ -131,7 +131,6 @@ static int lang_screen_post(struct nc_scr *scr) struct lang_screen *screen = lang_screen_from_scr(scr); widgetset_post(screen->widgetset); nc_scr_frame_draw(scr); - redrawwin(scr->main_ncw); wrefresh(screen->scr.main_ncw); pad_refresh(screen); return 0; diff --git a/ui/ncurses/nc-menu.c b/ui/ncurses/nc-menu.c index 7ff2468..b8f9a35 100644 --- a/ui/ncurses/nc-menu.c +++ b/ui/ncurses/nc-menu.c @@ -62,7 +62,6 @@ static int pmenu_post(struct nc_scr *scr) result = post_menu(menu->ncm); nc_scr_frame_draw(scr); - redrawwin(menu->scr.main_ncw); wrefresh(menu->scr.main_ncw); return result; |