Gitweb links:
...log
http://git.netsurf-browser.org/netsurf.git/shortlog/9e3db46b67f45b57a683f...
...commit
http://git.netsurf-browser.org/netsurf.git/commit/9e3db46b67f45b57a683fe1...
...tree
http://git.netsurf-browser.org/netsurf.git/tree/9e3db46b67f45b57a683fe1ff...
The branch, master has been updated
via 9e3db46b67f45b57a683fe1ff3350f89a6387354 (commit)
via 21ce8800b8b25ae2b5efefa2136c02387d390e8c (commit)
via de7361ca888881598a987972d8c76e58253423da (commit)
via 75cc4a06be412fa89fedfec13f524296aa106462 (commit)
from 4fd5d51765e9ec42626c961277062731942328a6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff
http://git.netsurf-browser.org/netsurf.git/commitdiff/9e3db46b67f45b57a68...
commit 9e3db46b67f45b57a683fe1ff3350f89a6387354
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Handle CTRL modifier too. CTRL with cursor left/right is same as SHIFT. CTRL+U
clears writable.
diff --git a/framebuffer/fbtk/text.c b/framebuffer/fbtk/text.c
index e2f0fa3..15c3f7a 100644
--- a/framebuffer/fbtk/text.c
+++ b/framebuffer/fbtk/text.c
@@ -306,6 +306,14 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
modifier &= ~(1<<1);
break;
+ case NSFB_KEY_RCTRL:
+ modifier &= ~(1<<2);
+ break;
+
+ case NSFB_KEY_LCTRL:
+ modifier &= ~(1<<3);
+ break;
+
default:
break;
}
@@ -371,7 +379,28 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
modifier |= 1<<1;
break;
+ case NSFB_KEY_RCTRL:
+ modifier |= 1<<2;
+ break;
+
+ case NSFB_KEY_LCTRL:
+ modifier |= 1<<3;
+ break;
+
default:
+ if (modifier & 1<<2 || modifier & 1<<3) {
+ /* CTRL pressed, don't enter any text */
+ if (value == NSFB_KEY_u) {
+ /* CTRL+U: clear writable */
+ widget->u.text.idx = 0;
+ widget->u.text.len = 0;
+ widget->u.text.text[widget->u.text.len] = '\0';
+ widget->u.text.width = 0;
+ caret_moved = true;
+ }
+ break;
+ }
+
/* allow for new character and null */
temp = realloc(widget->u.text.text, widget->u.text.len + 2);
if (temp == NULL) {
commitdiff
http://git.netsurf-browser.org/netsurf.git/commitdiff/21ce8800b8b25ae2b5e...
commit 21ce8800b8b25ae2b5efefa2136c02387d390e8c
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Cursor left/right keys plus modifier move caret to extrems.
diff --git a/framebuffer/fbtk/text.c b/framebuffer/fbtk/text.c
index d71b162..e2f0fa3 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:
commitdiff
http://git.netsurf-browser.org/netsurf.git/commitdiff/de7361ca888881598a9...
commit de7361ca888881598a987972d8c76e58253423da
Merge: 75cc4a0 4fd5d51
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Merge branch 'master' of
git://git.netsurf-browser.org/netsurf
commitdiff
http://git.netsurf-browser.org/netsurf.git/commitdiff/75cc4a06be412fa89fe...
commit 75cc4a06be412fa89fedfec13f524296aa106462
Author: Michael Drake <tlsa(a)netsurf-browser.org>
Commit: Michael Drake <tlsa(a)netsurf-browser.org>
Factor out some repeated code.
diff --git a/framebuffer/fbtk/text.c b/framebuffer/fbtk/text.c
index 879d888..d71b162 100644
--- a/framebuffer/fbtk/text.c
+++ b/framebuffer/fbtk/text.c
@@ -282,6 +282,7 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
plot_font_style_t font_style;
int fh;
int border;
+ bool caret_moved = false;
fb_text_font_style(widget, &fh, &border, &font_style);
@@ -324,13 +325,8 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
nsfont.font_width(&font_style, widget->u.text.text,
widget->u.text.len, &widget->u.text.width);
- nsfont.font_width(&font_style, widget->u.text.text,
- widget->u.text.idx, &widget->u.text.idx_offset);
- fbtk_set_caret(widget, true,
- widget->u.text.idx_offset + border,
- border,
- widget->height - border - border,
- fb_text_input_remove_caret_cb);
+
+ caret_moved = true;
break;
case NSFB_KEY_RETURN:
@@ -340,27 +336,14 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
case NSFB_KEY_RIGHT:
if (widget->u.text.idx < widget->u.text.len)
widget->u.text.idx++;
-
- nsfont.font_width(&font_style, widget->u.text.text,
- widget->u.text.idx, &widget->u.text.idx_offset);
- fbtk_set_caret(widget, true,
- widget->u.text.idx_offset + border,
- border,
- widget->height - border - border,
- fb_text_input_remove_caret_cb);
+ caret_moved = true;
break;
case NSFB_KEY_LEFT:
if (widget->u.text.idx > 0)
widget->u.text.idx--;
- nsfont.font_width(&font_style, widget->u.text.text,
- widget->u.text.idx, &widget->u.text.idx_offset);
- fbtk_set_caret(widget, true,
- widget->u.text.idx_offset + border,
- border,
- widget->height - border - border,
- fb_text_input_remove_caret_cb);
+ caret_moved = true;
break;
case NSFB_KEY_PAGEUP:
@@ -398,6 +381,11 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
nsfont.font_width(&font_style, widget->u.text.text,
widget->u.text.len, &widget->u.text.width);
+ caret_moved = true;
+ break;
+ }
+
+ if (caret_moved) {
nsfont.font_width(&font_style, widget->u.text.text,
widget->u.text.idx, &widget->u.text.idx_offset);
fbtk_set_caret(widget, true,
@@ -405,7 +393,6 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
border,
widget->height - border - border,
fb_text_input_remove_caret_cb);
- break;
}
fbtk_request_redraw(widget);
-----------------------------------------------------------------------
Summary of changes:
framebuffer/fbtk/text.c | 77 +++++++++++++++++++++++++++++++----------------
1 files changed, 51 insertions(+), 26 deletions(-)
diff --git a/framebuffer/fbtk/text.c b/framebuffer/fbtk/text.c
index 879d888..15c3f7a 100644
--- a/framebuffer/fbtk/text.c
+++ b/framebuffer/fbtk/text.c
@@ -282,6 +282,7 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
plot_font_style_t font_style;
int fh;
int border;
+ bool caret_moved = false;
fb_text_font_style(widget, &fh, &border, &font_style);
@@ -305,6 +306,14 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
modifier &= ~(1<<1);
break;
+ case NSFB_KEY_RCTRL:
+ modifier &= ~(1<<2);
+ break;
+
+ case NSFB_KEY_LCTRL:
+ modifier &= ~(1<<3);
+ break;
+
default:
break;
}
@@ -324,13 +333,8 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
nsfont.font_width(&font_style, widget->u.text.text,
widget->u.text.len, &widget->u.text.width);
- nsfont.font_width(&font_style, widget->u.text.text,
- widget->u.text.idx, &widget->u.text.idx_offset);
- fbtk_set_caret(widget, true,
- widget->u.text.idx_offset + border,
- border,
- widget->height - border - border,
- fb_text_input_remove_caret_cb);
+
+ caret_moved = true;
break;
case NSFB_KEY_RETURN:
@@ -338,29 +342,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++;
+ 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;
- nsfont.font_width(&font_style, widget->u.text.text,
- widget->u.text.idx, &widget->u.text.idx_offset);
- fbtk_set_caret(widget, true,
- widget->u.text.idx_offset + border,
- border,
- widget->height - border - border,
- fb_text_input_remove_caret_cb);
+ 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;
- nsfont.font_width(&font_style, widget->u.text.text,
- widget->u.text.idx, &widget->u.text.idx_offset);
- fbtk_set_caret(widget, true,
- widget->u.text.idx_offset + border,
- border,
- widget->height - border - border,
- fb_text_input_remove_caret_cb);
+ caret_moved = true;
+ }
break;
case NSFB_KEY_PAGEUP:
@@ -379,7 +379,28 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
modifier |= 1<<1;
break;
+ case NSFB_KEY_RCTRL:
+ modifier |= 1<<2;
+ break;
+
+ case NSFB_KEY_LCTRL:
+ modifier |= 1<<3;
+ break;
+
default:
+ if (modifier & 1<<2 || modifier & 1<<3) {
+ /* CTRL pressed, don't enter any text */
+ if (value == NSFB_KEY_u) {
+ /* CTRL+U: clear writable */
+ widget->u.text.idx = 0;
+ widget->u.text.len = 0;
+ widget->u.text.text[widget->u.text.len] = '\0';
+ widget->u.text.width = 0;
+ caret_moved = true;
+ }
+ break;
+ }
+
/* allow for new character and null */
temp = realloc(widget->u.text.text, widget->u.text.len + 2);
if (temp == NULL) {
@@ -398,6 +419,11 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
nsfont.font_width(&font_style, widget->u.text.text,
widget->u.text.len, &widget->u.text.width);
+ caret_moved = true;
+ break;
+ }
+
+ if (caret_moved) {
nsfont.font_width(&font_style, widget->u.text.text,
widget->u.text.idx, &widget->u.text.idx_offset);
fbtk_set_caret(widget, true,
@@ -405,7 +431,6 @@ text_input(fbtk_widget_t *widget, fbtk_callback_info *cbi)
border,
widget->height - border - border,
fb_text_input_remove_caret_cb);
- break;
}
fbtk_request_redraw(widget);
--
NetSurf Browser