diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2013-03-19 12:44:03 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2013-03-19 12:44:03 +0000 |
commit | f4ce62ebfe56283763533f1b778cee074ee6f372 (patch) | |
tree | bc8bec3e5e3397c0d8319c68283302009863ccd0 /render/box_textarea.c | |
parent | dd704c2c430da485c2fc296f20317a193f25b1a7 (diff) | |
download | netsurf-f4ce62ebfe56283763533f1b778cee074ee6f372.tar.gz netsurf-f4ce62ebfe56283763533f1b778cee074ee6f372.tar.bz2 |
In box textarea binding only redraw the area that was requested, not the whole textarea.
Diffstat (limited to 'render/box_textarea.c')
-rw-r--r-- | render/box_textarea.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/render/box_textarea.c b/render/box_textarea.c index d58f5ef1b..546a39e04 100644 --- a/render/box_textarea.c +++ b/render/box_textarea.c @@ -152,9 +152,17 @@ static void box_textarea_callback(void *data, struct textarea_msg *msg) break; case TEXTAREA_MSG_REDRAW_REQUEST: - /* Redraw the textarea */ - /* TODO: don't redraw whole box, just the part asked for */ - html__redraw_a_box(html, box); + { + /* Request redraw of the required textarea rectangle */ + int x, y; + box_coords(box, &x, &y); + + content__request_redraw((struct content *)html, + x + msg->data.redraw.x0, + y + msg->data.redraw.y0, + msg->data.redraw.x1 - msg->data.redraw.x0, + msg->data.redraw.y1 - msg->data.redraw.y0); + } break; case TEXTAREA_MSG_SELECTION_REPORT: |