diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2013-02-22 16:04:31 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2013-02-22 16:04:31 +0000 |
commit | d48f3e3f490e9afca5435ff93a95ad963287cb39 (patch) | |
tree | 2781ae7e4f53d69e03eee45e9e389fe5f67dd75a /desktop | |
parent | 59fdbae1bcb37f206cb8ede839cb12cd3702a6b1 (diff) | |
download | netsurf-d48f3e3f490e9afca5435ff93a95ad963287cb39.tar.gz netsurf-d48f3e3f490e9afca5435ff93a95ad963287cb39.tar.bz2 |
Textarea tweaks for caret placement after selection removal.
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/textarea.c | 9 |
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, |