diff options
Diffstat (limited to 'package/config/lxdialog')
-rw-r--r-- | package/config/lxdialog/.gitignore | 4 | ||||
-rw-r--r-- | package/config/lxdialog/checklist.c | 10 | ||||
-rw-r--r-- | package/config/lxdialog/inputbox.c | 4 | ||||
-rw-r--r-- | package/config/lxdialog/menubox.c | 22 | ||||
-rw-r--r-- | package/config/lxdialog/util.c | 2 |
5 files changed, 27 insertions, 15 deletions
diff --git a/package/config/lxdialog/.gitignore b/package/config/lxdialog/.gitignore new file mode 100644 index 000000000..90b08ff02 --- /dev/null +++ b/package/config/lxdialog/.gitignore @@ -0,0 +1,4 @@ +# +# Generated files +# +lxdialog diff --git a/package/config/lxdialog/checklist.c b/package/config/lxdialog/checklist.c index bcc6f19c3..a2eb80fbc 100644 --- a/package/config/lxdialog/checklist.c +++ b/package/config/lxdialog/checklist.c @@ -31,6 +31,10 @@ static int list_width, check_x, item_x; static void print_item(WINDOW * win, int choice, int selected) { int i; + char *list_item = malloc(list_width + 1); + + strncpy(list_item, item_str(), list_width - item_x); + list_item[list_width - item_x] = '\0'; /* Clear 'residue' of last item */ wattrset(win, dlg.menubox.atr); @@ -45,13 +49,14 @@ static void print_item(WINDOW * win, int choice, int selected) wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' '); wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr); - mvwaddch(win, choice, item_x, item_str()[0]); + mvwaddch(win, choice, item_x, list_item[0]); wattrset(win, selected ? dlg.item_selected.atr : dlg.item.atr); - waddstr(win, (char *)item_str() + 1); + waddstr(win, list_item + 1); if (selected) { wmove(win, choice, check_x + 1); wrefresh(win); } + free(list_item); } /* @@ -175,6 +180,7 @@ do_resize: check_x = 0; item_foreach() check_x = MAX(check_x, strlen(item_str()) + 4); + check_x = MIN(check_x, list_width); check_x = (list_width - check_x) / 2; item_x = check_x + 4; diff --git a/package/config/lxdialog/inputbox.c b/package/config/lxdialog/inputbox.c index 616c60138..dd8e587c5 100644 --- a/package/config/lxdialog/inputbox.c +++ b/package/config/lxdialog/inputbox.c @@ -180,7 +180,7 @@ do_resize: case KEY_LEFT: switch (button) { case -1: - button = 1; /* Indicates "Cancel" button is selected */ + button = 1; /* Indicates "Help" button is selected */ print_buttons(dialog, height, width, 1); break; case 0: @@ -204,7 +204,7 @@ do_resize: print_buttons(dialog, height, width, 0); break; case 0: - button = 1; /* Indicates "Cancel" button is selected */ + button = 1; /* Indicates "Help" button is selected */ print_buttons(dialog, height, width, 1); break; case 1: diff --git a/package/config/lxdialog/menubox.c b/package/config/lxdialog/menubox.c index fa9d633f2..1d604738f 100644 --- a/package/config/lxdialog/menubox.c +++ b/package/config/lxdialog/menubox.c @@ -383,6 +383,10 @@ do_resize: case 'n': case 'm': case '/': + case 'h': + case '?': + case 'z': + case '\n': /* save scroll info */ *s_scroll = scroll; delwin(menu); @@ -390,8 +394,10 @@ do_resize: item_set(scroll + choice); item_set_selected(1); switch (key) { + case 'h': + case '?': + return 2; case 's': - return 3; case 'y': return 3; case 'n': @@ -402,18 +408,12 @@ do_resize: return 6; case '/': return 7; + case 'z': + return 8; + case '\n': + return button; } return 0; - case 'h': - case '?': - button = 2; - case '\n': - *s_scroll = scroll; - delwin(menu); - delwin(dialog); - item_set(scroll + choice); - item_set_selected(1); - return button; case 'e': case 'x': key = KEY_ESC; diff --git a/package/config/lxdialog/util.c b/package/config/lxdialog/util.c index 86d95cca4..f2375ad7e 100644 --- a/package/config/lxdialog/util.c +++ b/package/config/lxdialog/util.c @@ -19,6 +19,8 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include <stdarg.h> + #include "dialog.h" struct dialog_info dlg; |