ui/ncurses: Treat left/right arrow keys properly
diff mbox

Message ID 20160819052516.8861-1-sam@mendozajonas.com
State Accepted
Headers show

Commit Message

Samuel Mendoza-Jonas Aug. 19, 2016, 5:25 a.m. UTC
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@mendozajonas.com>
---
 ui/ncurses/nc-widgets.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Patch
diff mbox

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) {