diff options
-rw-r--r-- | ui/ncurses/nc-config.c | 1 | ||||
-rw-r--r-- | ui/ncurses/nc-widgets.c | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/ui/ncurses/nc-config.c b/ui/ncurses/nc-config.c index 24aac2b..10d7eb6 100644 --- a/ui/ncurses/nc-config.c +++ b/ui/ncurses/nc-config.c @@ -411,6 +411,7 @@ static void config_screen_layout_widgets(struct config_screen *screen) widget_move(wl, y, screen->label_x); wf = widget_select_base(screen->widgets.autoboot_f); + widget_set_visible(wf, true); widget_move(wf, y, screen->field_x); y += widget_height(wf); diff --git a/ui/ncurses/nc-widgets.c b/ui/ncurses/nc-widgets.c index 50909ab..8f8816e 100644 --- a/ui/ncurses/nc-widgets.c +++ b/ui/ncurses/nc-widgets.c @@ -466,6 +466,7 @@ static void subset_delete_active(struct nc_widget_subset *subset, int idx) struct nc_widget *widget; size_t rem; int i, val; + uint32_t opts; /* Shift field focus to nearest active option or next visible field */ if (subset->n_active > 1) { @@ -477,8 +478,11 @@ static void subset_delete_active(struct nc_widget_subset *subset, int idx) } else { for (i = 0; i < set->n_fields; i++) if (field_visible(set->fields[i])) { - set->cur_field = set->fields[i]; - break; + opts = field_opts(set->fields[i]); + if ((opts & O_ACTIVE) == O_ACTIVE) { + set->cur_field = set->fields[i]; + break; + } } } |