diff options
author | Michael Drake <michael.drake@codethink.co.uk> | 2019-11-30 15:17:39 +0000 |
---|---|---|
committer | Michael Drake <michael.drake@codethink.co.uk> | 2019-11-30 15:20:21 +0000 |
commit | dc9de4998f267dfe9f1afb3c9b19b60bc6150ad5 (patch) | |
tree | 11e4c60a42406018ad4a1e835d32d1c218650746 /content | |
parent | 0840613ac2cbc6058d4704a69e1b77ffbe209455 (diff) | |
download | netsurf-dc9de4998f267dfe9f1afb3c9b19b60bc6150ad5.tar.gz netsurf-dc9de4998f267dfe9f1afb3c9b19b60bc6150ad5.tar.bz2 |
HTML redraw: Don't render scrollbars when the CSS doesn't permit it.
Diffstat (limited to 'content')
-rw-r--r-- | content/handlers/html/html_redraw.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/content/handlers/html/html_redraw.c b/content/handlers/html/html_redraw.c index 268bd62d3..0d2f6b523 100644 --- a/content/handlers/html/html_redraw.c +++ b/content/handlers/html/html_redraw.c @@ -1224,7 +1224,6 @@ bool html_redraw_box(const html_content *html, struct box *box, struct rect rect; int x_scrolled, y_scrolled; struct box *bg_box = NULL; - bool has_x_scroll, has_y_scroll; css_computed_clip_rect css_rect; enum css_overflow_e overflow_x = CSS_OVERFLOW_VISIBLE; enum css_overflow_e overflow_y = CSS_OVERFLOW_VISIBLE; @@ -1849,9 +1848,13 @@ bool html_redraw_box(const html_content *html, struct box *box, (box->object && content_get_type(box->object) == CONTENT_HTML)) && box->parent != NULL) { nserror res; + bool has_x_scroll = (overflow_x == CSS_OVERFLOW_SCROLL); + bool has_y_scroll = (overflow_y == CSS_OVERFLOW_SCROLL); - has_x_scroll = box_hscrollbar_present(box); - has_y_scroll = box_vscrollbar_present(box); + has_x_scroll |= (overflow_x == CSS_OVERFLOW_AUTO) && + box_hscrollbar_present(box); + has_y_scroll |= (overflow_y == CSS_OVERFLOW_AUTO) && + box_vscrollbar_present(box); res = box_handle_scrollbars((struct content *)html, box, has_x_scroll, has_y_scroll); |