From df5add3f6914619e5dad6866cb8635aebc267539 Mon Sep 17 00:00:00 2001 From: "Andrey A. Chernov" Date: Fri, 18 Nov 1994 01:46:32 +0000 Subject: [PATCH] Draw passed line with passed attrs on enter of line_edit() and redraw it with default attrs on exit. --- gnu/lib/libdialog/inputbox.c | 2 ++ gnu/lib/libdialog/lineedit.c | 11 ++++++++--- gnu/lib/libdialog/textbox.c | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gnu/lib/libdialog/inputbox.c b/gnu/lib/libdialog/inputbox.c index b23f2880ed4..3e5895d3e0a 100644 --- a/gnu/lib/libdialog/inputbox.c +++ b/gnu/lib/libdialog/inputbox.c @@ -94,6 +94,8 @@ int dialog_inputbox(unsigned char *title, unsigned char *prompt, int height, int first = 1; strcpy(instr, result); + wattrset(dialog, dialog_attr); + while (key != ESC) { if (button == -1) { /* Input box selected */ diff --git a/gnu/lib/libdialog/lineedit.c b/gnu/lib/libdialog/lineedit.c index 49e7826fcce..fb2e44038e5 100644 --- a/gnu/lib/libdialog/lineedit.c +++ b/gnu/lib/libdialog/lineedit.c @@ -48,10 +48,10 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht i = strlen(instr); input_x = i % box_width; scroll = i - input_x; - wmove(dialog, box_y, box_x); - for (i = 0; i < box_width; i++) - waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' '); } + wmove(dialog, box_y, box_x); + for (i = 0; i < box_width; i++) + waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' '); wmove(dialog, box_y, box_x + input_x); for (;;) { @@ -185,6 +185,11 @@ int line_edit(WINDOW* dialog, int box_y, int box_x, int flen, int box_width, cht } ret: wattrset(dialog, old_attr); + wmove(dialog, box_y, box_x); + for (i = 0; i < box_width; i++) + waddch(dialog, instr[scroll+i] ? instr[scroll+i] : ' '); + wmove(dialog, box_y, input_x + box_x); + wrefresh(dialog); strcpy(result, instr); return key; } diff --git a/gnu/lib/libdialog/textbox.c b/gnu/lib/libdialog/textbox.c index 2de9a4b160c..099f98ef0e7 100644 --- a/gnu/lib/libdialog/textbox.c +++ b/gnu/lib/libdialog/textbox.c @@ -647,6 +647,7 @@ static int get_search_term(WINDOW *win, unsigned char *search_term, int height, wattrset(win, searchbox_title_attr); wmove(win, y, x+box_width/2-4); waddstr(win, " Search "); + wattrset(win, dialog_attr); box_width -= 2; search_term[0] = '\0';