From 838359194e423fb5c568fca75f9ab6e00600be6c Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sat, 4 Jan 2014 14:48:58 +0000 Subject: Return message to client when textarea is modified. --- desktop/textarea.c | 9 +++++++++ desktop/textarea.h | 7 ++++++- 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'desktop') 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 */ }; -- cgit v1.2.3