[PATCH] ui/ncurses: Treat left/right arrow keys properly

Samuel Mendoza-Jonas sam at mendozajonas.com
Fri Aug 19 15:25:16 AEST 2016


It turns out ncurses helpfully provides REQ_LEFT_FIELD and
REQ_RIGHT_FIELD to navigate between visually horizontal fields. Update
widgetset_process_key() to use these for KEY_LEFT and KEY_RIGHT
respectively.

Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
 ui/ncurses/nc-widgets.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/ui/ncurses/nc-widgets.c b/ui/ncurses/nc-widgets.c
index 7dc2df3..15cec80 100644
--- a/ui/ncurses/nc-widgets.c
+++ b/ui/ncurses/nc-widgets.c
@@ -1132,14 +1132,12 @@ bool widgetset_process_key(struct nc_widgetset *set, int key)
 		tab = true;
 		/* fall through */
 	case KEY_UP:
-	case KEY_LEFT:
 		req = REQ_SPREV_FIELD;
 		break;
 	case '\t':
 		tab = true;
 		/* fall through */
 	case KEY_DOWN:
-	case KEY_RIGHT:
 		req = REQ_SNEXT_FIELD;
 		break;
 	case KEY_PPAGE:
@@ -1148,6 +1146,12 @@ bool widgetset_process_key(struct nc_widgetset *set, int key)
 	case KEY_NPAGE:
 		req = REQ_SLAST_FIELD;
 		break;
+	case KEY_LEFT:
+		req = REQ_LEFT_FIELD;
+		break;
+	case KEY_RIGHT:
+		req = REQ_RIGHT_FIELD;
+		break;
 	}
 
 	if (req) {
-- 
2.9.3



More information about the Petitboot mailing list