summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-02-09 14:43:21 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2013-02-09 14:43:21 +0000
commit8c3e0cf81ac34c899b9178d68e5e4e023b6dccf6 (patch)
tree8ba62e7b1afb4621505e77b8d7ddec4fe13df8fe
parentb4609f41bc5ad352d591ee3cd0f1a7fe2e2d572a (diff)
downloadnetsurf-8c3e0cf81ac34c899b9178d68e5e4e023b6dccf6.tar.gz
netsurf-8c3e0cf81ac34c899b9178d68e5e4e023b6dccf6.tar.bz2
[Return] will replace selection.
-rw-r--r--desktop/textarea.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/desktop/textarea.c b/desktop/textarea.c
index ef2c7ee25..24226d02c 100644
--- a/desktop/textarea.c
+++ b/desktop/textarea.c
@@ -1722,11 +1722,24 @@ bool textarea_keypress(struct textarea *ta, uint32_t key)
case KEY_NL:
if (readonly)
break;
- if(!textarea_insert_text(ta, caret, "\n", 1))
- return false;
- caret++;
- ta->sel_start = ta->sel_end = -1;
- redraw = true;
+
+ if (ta->sel_start != -1) {
+ if (!textarea_replace_text(ta,
+ ta->sel_start, ta->sel_end,
+ "\n", 1, false))
+ return false;
+
+ caret = ta->sel_start + 1;
+ ta->sel_start = ta->sel_end = -1;
+ redraw = true;
+ } else {
+ if (!textarea_replace_text(ta,
+ caret, caret,
+ "\n", 1, false))
+ return false;
+ caret++;
+ redraw = true;
+ }
break;
case KEY_CUT_LINE:
break;