diff options
author | jkh <jkh@FreeBSD.org> | 1996-04-25 17:27:18 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1996-04-25 17:27:18 +0000 |
commit | bd013f51f73fe7618393e72f501e20ecd6f63f56 (patch) | |
tree | e822bdc6b2c8959905289166ed025fc7688ac007 /gnu/lib/libdialog | |
parent | 46774261d1898c39c2883cb9d872302cbeb265b3 (diff) | |
download | FreeBSD-src-bd013f51f73fe7618393e72f501e20ecd6f63f56.zip FreeBSD-src-bd013f51f73fe7618393e72f501e20ecd6f63f56.tar.gz |
More custom hackery to deal with issues discovered in sysinstall.
Diffstat (limited to 'gnu/lib/libdialog')
-rw-r--r-- | gnu/lib/libdialog/checklist.c | 11 | ||||
-rw-r--r-- | gnu/lib/libdialog/menubox.c | 9 | ||||
-rw-r--r-- | gnu/lib/libdialog/radiolist.c | 11 |
3 files changed, 14 insertions, 17 deletions
diff --git a/gnu/lib/libdialog/checklist.c b/gnu/lib/libdialog/checklist.c index 7714d38..bd88057 100644 --- a/gnu/lib/libdialog/checklist.c +++ b/gnu/lib/libdialog/checklist.c @@ -333,18 +333,17 @@ draw: cur_x, cur_y); wrefresh(dialog); } - else if (st & DITEM_RECREATE) { - delwin(save); - delwin(list); - delwin(dialog); - goto draw; - } delwin(save); if (st & DITEM_LEAVE_MENU) { /* Allow a fire action to take us out of the menu */ key = ESC; break; } + else if (st & DITEM_RECREATE) { + delwin(list); + delwin(dialog); + goto draw; + } } status[scroll + choice] = ditems[scroll + choice].checked ? ditems[scroll + choice].checked(&ditems[scroll + choice]) : FALSE; diff --git a/gnu/lib/libdialog/menubox.c b/gnu/lib/libdialog/menubox.c index fde4fc6..2044db1 100644 --- a/gnu/lib/libdialog/menubox.c +++ b/gnu/lib/libdialog/menubox.c @@ -389,15 +389,14 @@ draw: touchwin(save); wrefresh(save); } - if (status & DITEM_RECREATE) { + delwin(save); + if (status & DITEM_CONTINUE) + continue; + else if (status & DITEM_RECREATE || !(status & DITEM_LEAVE_MENU)) { delwin(menu); delwin(dialog); - delwin(save); goto draw; } - delwin(save); - if (status & DITEM_CONTINUE) - continue; } else if (result) strcpy(result, items[(scroll+choice)*2]); diff --git a/gnu/lib/libdialog/radiolist.c b/gnu/lib/libdialog/radiolist.c index 0361fe2..c40e851 100644 --- a/gnu/lib/libdialog/radiolist.c +++ b/gnu/lib/libdialog/radiolist.c @@ -338,18 +338,17 @@ draw: wmove(dialog, cur_y, cur_x); /* Restore cursor to previous position */ wrefresh(dialog); } - else if (st & DITEM_RECREATE) { - delwin(save); - delwin(list); - delwin(dialog); - goto draw; - } delwin(save); if (st & DITEM_LEAVE_MENU) { /* Allow a fire action to take us out of the menu */ key = ESC; break; } + else if (st & DITEM_RECREATE) { + delwin(list); + delwin(dialog); + goto draw; + } } for (i = 0; i < item_no; i++) status[i] = ditems[i].checked ? ditems[i].checked(&ditems[i]) : FALSE; |