kconfig/lxdialog: support resize
In all dialogs now properly catch KEY_RESIZE and take proper action.
In mconf try to behave sensibly when a dialog routine returns
-ERRDISPLAYTOOSMALL.
The original check for a screnn size of 80x19 is kept for now.
It may make sense to remove it later, but thats anyway what
much text is adjusted for.
Signed-off-by: Sam Ravnborg <[email protected]>
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index ef75d6c..f7abca4 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -606,9 +606,8 @@
reset_dialog();
res = dialog_menu(prompt ? prompt : _("Main Menu"),
_(menu_instructions),
- rows, cols, rows - 10,
active_menu, &s_scroll);
- if (res == 1 || res == KEY_ESC)
+ if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
break;
if (!item_activate_selected())
continue;
@@ -617,7 +616,10 @@
submenu = item_data();
active_menu = item_data();
- sym = submenu->sym;
+ if (submenu)
+ sym = submenu->sym;
+ else
+ sym = NULL;
switch (res) {
case 0:
@@ -683,7 +685,7 @@
static void show_textbox(const char *title, const char *text, int r, int c)
{
reset_dialog();
- dialog_textbox(title, text, r ? r : rows, c ? c : cols);
+ dialog_textbox(title, text, r, c);
}
static void show_helptext(const char *title, const char *text)
@@ -756,6 +758,8 @@
break;
case KEY_ESC:
return;
+ case -ERRDISPLAYTOOSMALL:
+ return;
}
}
}