summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <michael.drake@codethink.co.uk>2019-11-30 15:17:39 +0000
committerMichael Drake <michael.drake@codethink.co.uk>2019-11-30 15:20:21 +0000
commitdc9de4998f267dfe9f1afb3c9b19b60bc6150ad5 (patch)
tree11e4c60a42406018ad4a1e835d32d1c218650746
parent0840613ac2cbc6058d4704a69e1b77ffbe209455 (diff)
downloadnetsurf-dc9de4998f267dfe9f1afb3c9b19b60bc6150ad5.tar.gz
netsurf-dc9de4998f267dfe9f1afb3c9b19b60bc6150ad5.tar.bz2
HTML redraw: Don't render scrollbars when the CSS doesn't permit it.
-rw-r--r--content/handlers/html/html_redraw.c9
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);