summaryrefslogtreecommitdiff
path: root/desktop/browser_window.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2019-08-20 00:16:52 +0100
committerVincent Sanders <vince@kyllikki.org>2019-08-20 00:16:52 +0100
commit4dc4d8b318c9bee25ca9b2982495b2906cc76287 (patch)
treece55d6902a33a0e00c388a65a450e05d19dd4d2c /desktop/browser_window.c
parentc0e27bd0da9c6804c788473b891bff6c0c98af66 (diff)
downloadnetsurf-4dc4d8b318c9bee25ca9b2982495b2906cc76287.tar.gz
netsurf-4dc4d8b318c9bee25ca9b2982495b2906cc76287.tar.bz2
add miscellaneous event to browser window callback table
extend the browser window callback table with a miscallaneous event entry. This is used to replace all browser window callbacks which take no parameters. This reduces the API surface from seven separate calls to a single call with an enumeration which may be readily extended. The initial implementation in the frontends simply calls the original implementations to reduce scope for errors.
Diffstat (limited to 'desktop/browser_window.c')
-rw-r--r--desktop/browser_window.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/desktop/browser_window.c b/desktop/browser_window.c
index cf5ba6800..e44b928be 100644
--- a/desktop/browser_window.c
+++ b/desktop/browser_window.c
@@ -410,14 +410,14 @@ static bool browser_window_check_throbber(struct browser_window *bw)
*
* \param bw browser window
*/
-static void browser_window_start_throbber(struct browser_window *bw)
+static nserror browser_window_start_throbber(struct browser_window *bw)
{
bw->throbbing = true;
while (bw->parent)
bw = bw->parent;
- guit->window->start_throbber(bw->window);
+ return guit->window->event(bw->window, GW_EVENT_START_THROBBER);
}
@@ -426,16 +426,19 @@ static void browser_window_start_throbber(struct browser_window *bw)
*
* \param bw browser window
*/
-static void browser_window_stop_throbber(struct browser_window *bw)
+static nserror browser_window_stop_throbber(struct browser_window *bw)
{
+ nserror res = NSERROR_OK;
+
bw->throbbing = false;
while (bw->parent)
bw = bw->parent;
if (!browser_window_check_throbber(bw)) {
- guit->window->stop_throbber(bw->window);
+ res = guit->window->event(bw->window, GW_EVENT_STOP_THROBBER);
}
+ return res;
}
@@ -765,7 +768,7 @@ static nserror browser_window_content_ready(struct browser_window *bw)
browser_window_remove_caret(bw, false);
if (bw->window != NULL) {
- guit->window->new_content(bw->window);
+ guit->window->event(bw->window, GW_EVENT_NEW_CONTENT);
browser_window_refresh_url_bar(bw);
}
@@ -2580,7 +2583,7 @@ void browser_window_update_extent(struct browser_window *bw)
{
if (bw->window != NULL) {
/* Front end window */
- guit->window->update_extent(bw->window);
+ guit->window->event(bw->window, GW_EVENT_UPDATE_EXTENT);
} else {
/* Core-managed browser window */
browser_window_handle_scrollbars(bw);
@@ -4260,7 +4263,7 @@ void browser_window_page_drag_start(struct browser_window *bw, int x, int y)
&bw->drag.start_scroll_x,
&bw->drag.start_scroll_y);
- guit->window->scroll_start(bw->window);
+ guit->window->event(bw->window, GW_EVENT_SCROLL_START);
} else {
/* Core managed browser window */
bw->drag.start_scroll_x = scrollbar_get_offset(bw->scroll_x);