]> Git Repo - linux.git/commitdiff
mconf: handle keys in empty dialogs
authorDirk Gouders <[email protected]>
Sun, 19 May 2013 19:48:44 +0000 (21:48 +0200)
committerYann E. MORIN <[email protected]>
Wed, 29 May 2013 22:13:32 +0000 (00:13 +0200)
When entering an empty dialog, using the movement keys resulted in
unexpected characters beeing displayed, other keys like "z" and "h"
did not work as expected.

This patch handles the movement keys as well as other keys, especially
"z", "h" and "/".

Signed-off-by: Dirk Gouders <[email protected]>
[[email protected]: keep lines <80 chars, so reorder test]
Tested-by: "Yann E. MORIN" <[email protected]>
Reviewed-by: "Yann E. MORIN" <[email protected]>
Signed-off-by: "Yann E. MORIN" <[email protected]>
scripts/kconfig/lxdialog/menubox.c
scripts/kconfig/mconf.c

index 48d382e7e3746bebd850114d4f7557dbc37c49db..38cd69c5660e5163bfc402617de0d702e3372bd6 100644 (file)
@@ -303,10 +303,11 @@ do_resize:
                                }
                }
 
-               if (i < max_choice ||
-                   key == KEY_UP || key == KEY_DOWN ||
-                   key == '-' || key == '+' ||
-                   key == KEY_PPAGE || key == KEY_NPAGE) {
+               if (item_count() != 0 &&
+                   (i < max_choice ||
+                    key == KEY_UP || key == KEY_DOWN ||
+                    key == '-' || key == '+' ||
+                    key == KEY_PPAGE || key == KEY_NPAGE)) {
                        /* Remove highligt of current item */
                        print_item(scroll + choice, choice, FALSE);
 
index 387dc8daf7b2d43ff96b735f6bd60b4c650f85a8..a69cbd78fb38e62f3f6c3978ef6a3935551aaabc 100644 (file)
@@ -670,11 +670,12 @@ static void conf(struct menu *menu, struct menu *active_menu)
                                  active_menu, &s_scroll);
                if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
                        break;
-               if (!item_activate_selected())
-                       continue;
-               if (!item_tag())
-                       continue;
-
+               if (item_count() != 0) {
+                       if (!item_activate_selected())
+                               continue;
+                       if (!item_tag())
+                               continue;
+               }
                submenu = item_data();
                active_menu = item_data();
                if (submenu)
This page took 0.058371 seconds and 4 git commands to generate.