aboutsummaryrefslogtreecommitdiffstats
path: root/conf_scr.c
diff options
context:
space:
mode:
Diffstat (limited to 'conf_scr.c')
-rw-r--r--conf_scr.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/conf_scr.c b/conf_scr.c
index 2f2c5c2..ad6462c 100644
--- a/conf_scr.c
+++ b/conf_scr.c
@@ -33,7 +33,6 @@ extern int conf_items; /* index into array storing menu items */
static WINDOW *w_conf, *w_confpad;
static int first_item, active_item;
static int num_items, list_offset;
-static struct conf_item *item;
static void waddstr_item(WINDOW *w, int y, struct conf_item *item, char hilight)
{
@@ -133,13 +132,13 @@ static int select_item(int rv, int incr)
/* Perform selection, return offset value to ensure pad fits inside window */
static int m_pref(WINDOW *w_conf, int list_offset, int active_item, int num_items)
{
- struct conf_item *item;
int active_line, i, j;
werase(w_conf);
for (active_line = i = j = 0; i < num_items; i++) {
- item = ll_get(conf_items, i);
+ struct conf_item *item = ll_get(conf_items, i);
+
if (!item->dep || *item->dep) {
if (i != active_item)
waddstr_item(w_conf, j++, item, 0);
@@ -159,6 +158,7 @@ static int m_pref(WINDOW *w_conf, int list_offset, int active_item, int num_item
void scr_conf_init(void)
{
+ struct conf_item *item;
conf_get_interface_list(false); /* may have changed in the meantime */
num_items = ll_size(conf_items);
@@ -174,6 +174,7 @@ void scr_conf_init(void)
int scr_conf_loop(WINDOW *w_menu)
{
+ struct conf_item *item;
int key;
list_offset = m_pref(w_confpad, list_offset, active_item, num_items);
@@ -185,7 +186,14 @@ int scr_conf_loop(WINDOW *w_menu)
key = wgetch(w_menu);
switch (key) {
+ case KEY_HOME:
+ active_item = first_item;
+ break;
+ case KEY_END:
+ active_item = num_items - 1;
+ break;
case KEY_DOWN:
+ case KEY_NPAGE:
active_item = select_item(active_item, 1);
if (active_item >= num_items) {
active_item = first_item;
@@ -193,6 +201,7 @@ int scr_conf_loop(WINDOW *w_menu)
}
break;
case KEY_UP:
+ case KEY_PPAGE:
active_item = select_item(active_item, -1);
if (active_item < first_item)
active_item = num_items - 1;