summaryrefslogtreecommitdiff
path: root/desktop/browser.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2011-07-14 10:27:24 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2011-07-14 10:27:24 +0000
commit430b63e2429179f422b68e1da0d576c8662b5d5a (patch)
treebdaebe747833f923130a169d1107ceee3da614ee /desktop/browser.c
parent8faa353087b8642dd71d3ab4b3e6f3075fe0d5fa (diff)
downloadnetsurf-430b63e2429179f422b68e1da0d576c8662b5d5a.tar.gz
netsurf-430b63e2429179f422b68e1da0d576c8662b5d5a.tar.bz2
Remove assumption of gui window from search.
svn path=/trunk/netsurf/; revision=12603
Diffstat (limited to 'desktop/browser.c')
-rw-r--r--desktop/browser.c33
1 files changed, 25 insertions, 8 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 54c89fe64..7fd572e21 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -378,15 +378,32 @@ struct selection *browser_window_get_selection(struct browser_window *bw)
return bw->cur_sel;
}
-/**
- * Set scroll offsets for a browser window.
- *
- * \param bw The browser window
- * \param x The x scroll offset to set
- * \param y The y scroll offset to set
- */
+/* exported interface, documented in browser.h */
+void browser_window_scroll_visible(struct browser_window *bw,
+ const struct rect *rect)
+{
+ assert(bw != NULL);
-static void browser_window_set_scroll(struct browser_window *bw, int x, int y)
+ switch (bw->browser_window_type) {
+ default:
+ /* fall through to NORMAL until frame(set)s are handled
+ * in the core */
+ case BROWSER_WINDOW_NORMAL:
+ gui_window_scroll_visible(bw->window,
+ rect->x0, rect->y0, rect->x1, rect->y1);
+ break;
+
+ case BROWSER_WINDOW_IFRAME:
+ if (bw->scroll_x != NULL)
+ scrollbar_set(bw->scroll_x, rect->x0, false);
+ if (bw->scroll_y != NULL)
+ scrollbar_set(bw->scroll_y, rect->y0, false);
+ break;
+ }
+}
+
+/* exported interface, documented in browser.h */
+void browser_window_set_scroll(struct browser_window *bw, int x, int y)
{
if (bw->window != NULL) {
gui_window_set_scroll(bw->window, x, y);