summaryrefslogtreecommitdiff
path: root/framebuffer/fbtk/text.c
diff options
context:
space:
mode:
Diffstat (limited to 'framebuffer/fbtk/text.c')
-rw-r--r--framebuffer/fbtk/text.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/framebuffer/fbtk/text.c b/framebuffer/fbtk/text.c
index d71b162f6..e2f0fa389 100644
--- a/framebuffer/fbtk/text.c
+++ b/framebuffer/fbtk/text.c
@@ -334,16 +334,25 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
break;
case NSFB_KEY_RIGHT:
- if (widget->u.text.idx < widget->u.text.len)
- widget->u.text.idx++;
- caret_moved = true;
+ if (widget->u.text.idx < widget->u.text.len) {
+ if (modifier == 0)
+ widget->u.text.idx++;
+ else
+ widget->u.text.idx = widget->u.text.len;
+
+ caret_moved = true;
+ }
break;
case NSFB_KEY_LEFT:
- if (widget->u.text.idx > 0)
- widget->u.text.idx--;
+ if (widget->u.text.idx > 0) {
+ if (modifier == 0)
+ widget->u.text.idx--;
+ else
+ widget->u.text.idx = 0;
- caret_moved = true;
+ caret_moved = true;
+ }
break;
case NSFB_KEY_PAGEUP: