diff options
author | Vincent Sanders <vince@kyllikki.org> | 2019-08-20 00:16:52 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2019-08-20 00:16:52 +0100 |
commit | 4dc4d8b318c9bee25ca9b2982495b2906cc76287 (patch) | |
tree | ce55d6902a33a0e00c388a65a450e05d19dd4d2c /desktop/browser_window.c | |
parent | c0e27bd0da9c6804c788473b891bff6c0c98af66 (diff) | |
download | netsurf-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.c | 17 |
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); |