summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2014-01-04 14:48:58 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2014-01-04 14:48:58 +0000
commit838359194e423fb5c568fca75f9ab6e00600be6c (patch)
tree15ec73dab665c1cac8b4363b4e3fdc2bb21ad543 /desktop
parent8b253a215134c104f853165b4a674ffc24be8cbe (diff)
downloadnetsurf-838359194e423fb5c568fca75f9ab6e00600be6c.tar.gz
netsurf-838359194e423fb5c568fca75f9ab6e00600be6c.tar.bz2
Return message to client when textarea is modified.
Diffstat (limited to 'desktop')
-rw-r--r--desktop/textarea.c9
-rw-r--r--desktop/textarea.h7
2 files changed, 15 insertions, 1 deletions
diff --git a/desktop/textarea.c b/desktop/textarea.c
index bfa07ad4f..f9712ac84 100644
--- a/desktop/textarea.c
+++ b/desktop/textarea.c
@@ -160,6 +160,7 @@ static void textarea_normalise_text(struct textarea *ta,
unsigned int b_start, unsigned int b_len)
{
bool multi = (ta->flags & TEXTAREA_MULTILINE) ? true : false;
+ struct textarea_msg msg;
unsigned int index;
/* Remove CR characters. If it's a CRLF pair delete the CR, or replace
@@ -187,6 +188,14 @@ static void textarea_normalise_text(struct textarea *ta,
ta->text.data[b_start + index] = ' ';
}
+ /* Build text modified message */
+ msg.ta = ta;
+ msg.type = TEXTAREA_MSG_TEXT_MODIFIED;
+ msg.data.modified.text = ta->text.data;
+ msg.data.modified.len = ta->text.len;
+
+ /* Pass message to client */
+ ta->callback(ta->data, &msg);
}
diff --git a/desktop/textarea.h b/desktop/textarea.h
index 016f15a10..1c24dd1cc 100644
--- a/desktop/textarea.h
+++ b/desktop/textarea.h
@@ -51,7 +51,8 @@ typedef enum {
TEXTAREA_MSG_DRAG_REPORT, /**< Textarea drag start/end report */
TEXTAREA_MSG_SELECTION_REPORT, /**< Textarea text selection presence */
TEXTAREA_MSG_REDRAW_REQUEST, /**< Textarea redraw request */
- TEXTAREA_MSG_CARET_UPDATE /**< Textarea caret */
+ TEXTAREA_MSG_CARET_UPDATE, /**< Textarea caret */
+ TEXTAREA_MSG_TEXT_MODIFIED /**< Textarea text modified */
} textarea_msg_type;
struct textarea_msg {
@@ -77,6 +78,10 @@ struct textarea_msg {
struct rect *clip; /**< Carret clip rect */
} pos; /**< With _CARET_SET_POS */
} caret; /**< With _CARET_UPDATE */
+ struct {
+ const char *text; /**< UTF8 text */
+ unsigned int len; /**< Byte length of text */
+ } modified; /**< With _TEXT_MODIFIED */
} data; /**< Depends on msg type */
};