diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2014-10-25 12:04:11 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2014-10-25 12:04:11 +0100 |
commit | eed2a97eca65f1b65faf85865d67171031653727 (patch) | |
tree | 8046128b9b02b9dbb7750d86239a26c8c0d46b19 /desktop | |
parent | af3cb6bf94b77cda7435cc26f55aca8b193bd89d (diff) | |
download | netsurf-eed2a97eca65f1b65faf85865d67171031653727.tar.gz netsurf-eed2a97eca65f1b65faf85865d67171031653727.tar.bz2 |
Add bw function to get scrollbar type.
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 13 | ||||
-rw-r--r-- | desktop/browser.h | 15 | ||||
-rw-r--r-- | desktop/browser_private.h | 2 | ||||
-rw-r--r-- | desktop/frame_types.h | 6 | ||||
-rw-r--r-- | desktop/frames.c | 4 |
5 files changed, 30 insertions, 10 deletions
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; |