summaryrefslogtreecommitdiff
path: root/desktop/browser.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2003-09-29 02:47:11 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2003-09-29 02:47:11 +0000
commit20ae4bff717dfc1313cf8d52c4910b6350c87d23 (patch)
treea47817310a243fd94d13f8490377b9ffd9369be1 /desktop/browser.c
parent73f7db2a75a7cee2add50973e8861b767f5bb650 (diff)
downloadnetsurf-20ae4bff717dfc1313cf8d52c4910b6350c87d23.tar.gz
netsurf-20ae4bff717dfc1313cf8d52c4910b6350c87d23.tar.bz2
[project @ 2003-09-29 02:47:11 by jmb]
Cursor keys and Enter in forms svn path=/import/netsurf/; revision=331
Diffstat (limited to 'desktop/browser.c')
-rw-r--r--desktop/browser.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index cc845d4e5..3ad447f94 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -732,7 +732,7 @@ void browser_window_textarea_callback(struct browser_window *bw, char key, void
text_box->length = 0;
text_box->width = UNKNOWN_WIDTH;
char_offset--;
- }
+ }
} else {
/* delete a character */
memmove(text_box->text + char_offset - 1,
@@ -742,6 +742,20 @@ void browser_window_textarea_callback(struct browser_window *bw, char key, void
text_box->width = UNKNOWN_WIDTH;
char_offset--;
}
+ } else if (key == 28 && char_offset != text_box->length) {
+ /* Right cursor -> */
+ char_offset++;
+ } else if (key == 29 && char_offset != 0) {
+ /* Left cursor <- */
+ char_offset--;
+ } else if (key == 30) {
+ /* Up Cursor */
+ /* TODO */
+ return;
+ } else if (key == 31) {
+ /* Down cursor */
+ /* TODO */
+ return;
} else {
return;
}
@@ -788,7 +802,7 @@ void browser_window_textarea_callback(struct browser_window *bw, char key, void
if (!t->next) assert(ic->last == t);
}
} */
-
+
if (text_box->length < char_offset) {
/* the text box has been split and the caret is in the second part */
char_offset -= (text_box->length + 1); /* +1 for the space */
@@ -862,6 +876,7 @@ void browser_window_input_callback(struct browser_window *bw, char key, void *p)
int char_offset = input->gadget->caret_char_offset;
int pixel_offset;
unsigned long actual_x, actual_y;
+ struct form* form = input->gadget->form;
box_coords(input, &actual_x, &actual_y);
@@ -895,6 +910,20 @@ void browser_window_input_callback(struct browser_window *bw, char key, void *p)
text_box->length--;
input->gadget->value[text_box->length] = 0;
char_offset--;
+ } else if (key == 10 || key == 13) {
+ /* Return/Enter hit */
+ browser_form_submit(bw, form);
+ /*TODO: remove caret from new page */
+ } else if (key == 9) {
+ /* Tab */
+ /* TODO: tabbing between inputs */
+ return;
+ } else if (key == 28 && char_offset != text_box->length) {
+ /* Right cursor -> */
+ char_offset++;
+ } else if (key == 29 && char_offset != 0) {
+ /* Left cursor <- */
+ char_offset--;
} else {
return;
}