summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
Diffstat (limited to 'render')
-rw-r--r--render/html.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/render/html.c b/render/html.c
index 9047e661f..376b42ddc 100644
--- a/render/html.c
+++ b/render/html.c
@@ -675,10 +675,22 @@ void html_object_callback(content_msg msg, struct content *object,
case CONTENT_MSG_REDRAW:
box_coords(box, &x, &y);
- data.redraw.x += x;
- data.redraw.y += y;
- data.redraw.object_x += x;
- data.redraw.object_y += y;
+ if (box->object == data.redraw.object) {
+ data.redraw.x = data.redraw.x *
+ box->width / box->object->width;
+ data.redraw.y = data.redraw.y *
+ box->height / box->object->height;
+ data.redraw.width = data.redraw.width *
+ box->width / box->object->width;
+ data.redraw.height = data.redraw.height *
+ box->height / box->object->height;
+ data.redraw.object_width = box->width;
+ data.redraw.object_height = box->height;
+ }
+ data.redraw.x += x + box->padding[LEFT];
+ data.redraw.y += y + box->padding[TOP];
+ data.redraw.object_x += x + box->padding[LEFT];
+ data.redraw.object_y += y + box->padding[TOP];
content_broadcast(c, CONTENT_MSG_REDRAW, data);
break;