]> git.ozlabs.org Git - petitboot/blobdiff - ui/ncurses/nc-textscreen.c
Fix certain calls to gettext
[petitboot] / ui / ncurses / nc-textscreen.c
index d5b894e8f8c87d5868e1cdd44db52c56a7b975c8..55428e791986d102665fc0aaa42fa36addea3fda 100644 (file)
@@ -26,6 +26,7 @@
 #include <log/log.h>
 #include <fold/fold.h>
 #include <util/util.h>
+#include <i18n/i18n.h>
 
 #include "nc-cui.h"
 #include "nc-textscreen.h"
@@ -144,6 +145,7 @@ void text_screen_process_key(struct nc_scr *scr, int key)
 
        switch (key) {
        case 'x':
+       case 27: /* esc */
                screen->on_exit(screen->cui);
                break;
        case KEY_DOWN:
@@ -172,15 +174,22 @@ struct nc_scr *text_screen_scr(struct text_screen *screen)
 }
 
 void text_screen_set_help(struct text_screen *screen, const char *title,
-               const char *text)
+               const struct help_text *text)
 {
        screen->help_title = title;
        screen->help_text = text;
-       screen->scr.frame.help = "x=exit h=help";
+       screen->scr.frame.help = _("x=exit, h=help");
 }
 
 static int text_screen_post(struct nc_scr *scr)
 {
+       struct text_screen *screen = text_screen_from_scr(scr);
+
+       if (screen->need_update) {
+               text_screen_draw(screen);
+               screen->need_update = false;
+       }
+
        nc_scr_frame_draw(scr);
        redrawwin(scr->main_ncw);
        wrefresh(scr->main_ncw);
@@ -200,9 +209,10 @@ void text_screen_init(struct text_screen *screen, struct cui *cui,
 
        screen->cui = cui;
        screen->on_exit = on_exit;
+       screen->need_update = false;
 
        screen->scr.frame.ltitle = talloc_strdup(screen, title);
        screen->scr.frame.rtitle = NULL;
-       screen->scr.frame.help = "x=exit";
+       screen->scr.frame.help = _("x=exit");
        scrollok(screen->scr.sub_ncw, true);
 }