summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-02-22 16:04:31 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2013-02-22 16:04:31 +0000
commitd48f3e3f490e9afca5435ff93a95ad963287cb39 (patch)
tree2781ae7e4f53d69e03eee45e9e389fe5f67dd75a /desktop
parent59fdbae1bcb37f206cb8ede839cb12cd3702a6b1 (diff)
downloadnetsurf-d48f3e3f490e9afca5435ff93a95ad963287cb39.tar.gz
netsurf-d48f3e3f490e9afca5435ff93a95ad963287cb39.tar.bz2
Textarea tweaks for caret placement after selection removal.
Diffstat (limited to 'desktop')
-rw-r--r--desktop/textarea.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/desktop/textarea.c b/desktop/textarea.c
index 414408045..98eb8bee7 100644
--- a/desktop/textarea.c
+++ b/desktop/textarea.c
@@ -1876,6 +1876,7 @@ bool textarea_keypress(struct textarea *ta, uint32_t key)
ta->sel_start,
ta->sel_end, "", 0, false))
return false;
+ caret = ta->sel_start;
textarea_clear_selection(ta);
} else {
if (ta->lines[line].b_length != 0) {
@@ -1883,8 +1884,8 @@ bool textarea_keypress(struct textarea *ta, uint32_t key)
b_off = ta->lines[line].b_start;
b_len = ta->lines[line].b_length;
l_len = utf8_bounded_length(
- &(ta->text.data[b_off]),
- b_len);
+ &(ta->show->
+ data[b_off]), b_len);
caret -= ta->caret_pos.char_off;
if (!textarea_replace_text(ta, caret,
caret + l_len, "", 0,
@@ -2141,12 +2142,13 @@ bool textarea_keypress(struct textarea *ta, uint32_t key)
ta->sel_start,
ta->sel_end, "", 0, false))
return false;
+ caret = ta->sel_start;
textarea_clear_selection(ta);
} else {
b_off = ta->lines[line].b_start;
b_len = ta->lines[line].b_length;
l_len = utf8_bounded_length(
- &(ta->text.data[b_off]),
+ &(ta->show->data[b_off]),
b_len) - ta->caret_pos.char_off;
if (!textarea_replace_text(ta, caret,
caret + l_len, "", 0, false))
@@ -2162,6 +2164,7 @@ bool textarea_keypress(struct textarea *ta, uint32_t key)
ta->sel_start,
ta->sel_end, "", 0, false))
return false;
+ caret = ta->sel_start;
textarea_clear_selection(ta);
} else {
if (!textarea_replace_text(ta,