]> git.ozlabs.org Git - petitboot/blobdiff - ui/ncurses/nc-add-url.c
ui/ncurses: Reduce unnecessary calls to redrawwin
[petitboot] / ui / ncurses / nc-add-url.c
index f8273a29ace0ac9177bc103820f85c24f05e08f2..cf55b03a104df725fcb9c2207c816cda87df1b5a 100644 (file)
@@ -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;
 }
@@ -191,7 +196,7 @@ static void add_url_screen_layout_widgets(struct add_url_screen *screen)
        widget_move(widget_button_base(screen->widgets.help_b),
                y, screen->field_x + 10);
        widget_move(widget_button_base(screen->widgets.cancel_b),
-               y, screen->field_x + 23);
+               y, screen->field_x + 24);
 }
 
 static void add_url_screen_setup_widgets(struct add_url_screen *screen)
@@ -207,9 +212,9 @@ static void add_url_screen_setup_widgets(struct add_url_screen *screen)
 
        screen->widgets.ok_b = widget_new_button(set, 0, 0, 6, _("OK"),
                        ok_click, screen);
-       screen->widgets.help_b = widget_new_button(set, 0, 0, 9, _("Help"),
+       screen->widgets.help_b = widget_new_button(set, 0, 0, 10, _("Help"),
                        help_click, screen);
-       screen->widgets.cancel_b = widget_new_button(set, 0, 0, 9, _("Cancel"),
+       screen->widgets.cancel_b = widget_new_button(set, 0, 0, 10, _("Cancel"),
                        cancel_click, screen);
 }
 
@@ -223,7 +228,8 @@ struct add_url_screen *add_url_screen_init(struct cui *cui,
        screen->cui = cui;
        screen->on_exit = on_exit;
        screen->label_x = 2;
-       screen->field_x = 22;
+       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,