summaryrefslogtreecommitdiff
path: root/render/html_redraw.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2011-06-14 20:00:18 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2011-06-14 20:00:18 +0000
commit53f4da342088e0fe685034d0582cbf6fa13527ae (patch)
tree063970a74db5d904993cd2cc392f5e07f211b6a4 /render/html_redraw.c
parent6ed9b1de8bb2aa5220c60fbf0b42aea78f889da1 (diff)
downloadnetsurf-53f4da342088e0fe685034d0582cbf6fa13527ae.tar.gz
netsurf-53f4da342088e0fe685034d0582cbf6fa13527ae.tar.bz2
First pass at core iframes. Currently lacking scrollbars.
svn path=/trunk/netsurf/; revision=12474
Diffstat (limited to 'render/html_redraw.c')
-rw-r--r--render/html_redraw.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/render/html_redraw.c b/render/html_redraw.c
index cc80bde81..1bc32607f 100644
--- a/render/html_redraw.c
+++ b/render/html_redraw.c
@@ -430,7 +430,7 @@ bool html_redraw_box(struct box *box, int x_parent, int y_parent,
bg_box->type != BOX_TEXT &&
bg_box->type != BOX_INLINE_END &&
(bg_box->type != BOX_INLINE || bg_box->object ||
- box->flags & REPLACE_DIM)) {
+ bg_box->flags & IFRAME || box->flags & REPLACE_DIM)) {
/* find intersection of clip box and border edge */
struct rect p;
p.x0 = x - border_left < r.x0 ? r.x0 : x - border_left;
@@ -475,7 +475,7 @@ bool html_redraw_box(struct box *box, int x_parent, int y_parent,
if (box->style && box->type != BOX_TEXT &&
box->type != BOX_INLINE_END &&
(box->type != BOX_INLINE || box->object ||
- box->flags & REPLACE_DIM) &&
+ box->flags & IFRAME || box->flags & REPLACE_DIM) &&
(border_top || border_right ||
border_bottom || border_left)) {
if (!html_redraw_borders(box, x_parent, y_parent,
@@ -622,8 +622,9 @@ bool html_redraw_box(struct box *box, int x_parent, int y_parent,
/* clip to the padding edge for objects, or boxes with overflow hidden
* or scroll */
- if (box->object || (box->style && css_computed_overflow(box->style) !=
- CSS_OVERFLOW_VISIBLE)) {
+ if ((box->style && css_computed_overflow(box->style) !=
+ CSS_OVERFLOW_VISIBLE) || box->object ||
+ box->flags & IFRAME) {
r.x0 = x;
r.y0 = y;
r.x1 = x + padding_width;
@@ -660,6 +661,10 @@ bool html_redraw_box(struct box *box, int x_parent, int y_parent,
false, false))
return false;
+ } else if (box->flags & IFRAME) {
+ browser_window_redraw(box->iframe,
+ x + padding_left, y + padding_top, &r);
+
} else if (box->gadget && box->gadget->type == GADGET_CHECKBOX) {
if (!html_redraw_checkbox(x + padding_left, y + padding_top,
width, height,