From 8c3e0cf81ac34c899b9178d68e5e4e023b6dccf6 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sat, 9 Feb 2013 14:43:21 +0000 Subject: [Return] will replace selection. --- desktop/textarea.c | 23 ++++++++++++++++++----- 1 file 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; -- cgit v1.2.3