From eed2a97eca65f1b65faf85865d67171031653727 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Sat, 25 Oct 2014 12:04:11 +0100 Subject: Add bw function to get scrollbar type. --- desktop/browser.c | 13 ++++++++++++- desktop/browser.h | 15 +++++++++++++++ desktop/browser_private.h | 2 +- desktop/frame_types.h | 6 ------ desktop/frames.c | 4 ++-- 5 files changed, 30 insertions(+), 10 deletions(-) (limited to 'desktop') diff --git a/desktop/browser.c b/desktop/browser.c index 5a19262cf..315859aeb 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -483,6 +483,17 @@ bool browser_window_is_frameset(struct browser_window *bw) return (bw->children != NULL); } + +/* exported interface, documented in desktop/browser.h */ +nserror browser_window_get_scrollbar_type(struct browser_window *bw, + browser_scrolling *h, browser_scrolling *v) +{ + *h = bw->scrolling; + *v = bw->scrolling; + + return NSERROR_OK; +} + /** * Set or remove a selection. * @@ -772,7 +783,7 @@ nserror browser_window_create(enum browser_window_create_flags flags, /* window characteristics */ ret->browser_window_type = BROWSER_WINDOW_NORMAL; - ret->scrolling = SCROLLING_YES; + ret->scrolling = BW_SCROLLING_YES; ret->border = true; ret->no_resize = true; ret->last_action = wallclock(); diff --git a/desktop/browser.h b/desktop/browser.h index 8bad27632..8dff6dd6f 100644 --- a/desktop/browser.h +++ b/desktop/browser.h @@ -61,6 +61,12 @@ typedef enum { BW_EDITOR_CAN_PASTE = (1 << 2) /**< Can paste, input */ } browser_editor_flags; +typedef enum { + BW_SCROLLING_AUTO, + BW_SCROLLING_YES, + BW_SCROLLING_NO +} browser_scrolling; + /** flags to browser_window_create */ enum browser_window_create_flags { /** No flags set */ @@ -602,6 +608,15 @@ bool browser_window_can_search(struct browser_window *bw); */ bool browser_window_is_frameset(struct browser_window *bw); +/** + * Find out if a browser window contains a frameset + * + * \param bw browser window to look at + * \return NSERROR_OK, or appropriate error otherwise + */ +nserror browser_window_get_scrollbar_type(struct browser_window *bw, + browser_scrolling *h, browser_scrolling *v); + /** * Dump debug info concerning the browser window's contents to file diff --git a/desktop/browser_private.h b/desktop/browser_private.h index 51a11d35f..d373bd42e 100644 --- a/desktop/browser_private.h +++ b/desktop/browser_private.h @@ -123,7 +123,7 @@ struct browser_window { /** frame characteristics */ bool no_resize; - frame_scrolling scrolling; + browser_scrolling scrolling; bool border; colour border_colour; diff --git a/desktop/frame_types.h b/desktop/frame_types.h index f193d03f9..7008e98d4 100644 --- a/desktop/frame_types.h +++ b/desktop/frame_types.h @@ -32,12 +32,6 @@ struct frame_dimension { } unit; }; -typedef enum { - SCROLLING_AUTO, - SCROLLING_YES, - SCROLLING_NO -} frame_scrolling; - /* Handy struct names */ struct content_html_iframe; struct content_html_frames; diff --git a/desktop/frames.c b/desktop/frames.c index 534cca4f7..ff9b88286 100644 --- a/desktop/frames.c +++ b/desktop/frames.c @@ -111,10 +111,10 @@ void browser_window_handle_scrollbars(struct browser_window *bw) c_height = content_get_height(h); } - if (bw->scrolling == SCROLLING_YES) { + if (bw->scrolling == BW_SCROLLING_YES) { scroll_x = true; scroll_y = true; - } else if (bw->scrolling == SCROLLING_AUTO && + } else if (bw->scrolling == BW_SCROLLING_AUTO && bw->current_content) { int bw_width = bw->width; int bw_height = bw->height; -- cgit v1.2.3