diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2012-08-14 14:03:54 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2012-08-14 14:03:54 +0100 |
commit | 5526d7e6f2e071a115359f6b9c0dca7b2c4c4efe (patch) | |
tree | 74e72ab157ae3c7177aae24d4ff62fa586096535 /desktop | |
parent | b51816c222dded2095fc2d5c1581575540095f43 (diff) | |
download | netsurf-5526d7e6f2e071a115359f6b9c0dca7b2c4c4efe.tar.gz netsurf-5526d7e6f2e071a115359f6b9c0dca7b2c4c4efe.tar.bz2 |
Stop render/search.c from dereferencing bw and remove dependency on html & text contents' bw pointer.
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/search.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/desktop/search.c b/desktop/search.c index 205ce80c8..2fe762941 100644 --- a/desktop/search.c +++ b/desktop/search.c @@ -44,6 +44,19 @@ #include "utils/utils.h" +/* callback informing us that a search context is nolonger valid */ +static void browser_window_search_invalidate(struct search_context *context, + void *p) +{ + struct browser_window *bw = p; + assert(bw != NULL); + + if (bw->cur_search != NULL && bw->cur_search == context) { + /* The browser's current search is the one being invalidated */ + bw->cur_search = NULL; + } +} + bool browser_window_search_create_context(struct browser_window *bw, struct gui_search_callbacks *gui_callbacks, void *gui_p) @@ -61,6 +74,8 @@ bool browser_window_search_create_context(struct browser_window *bw, callbacks.gui = gui_callbacks; callbacks.gui_p = gui_p; + callbacks.invalidate = browser_window_search_invalidate; + callbacks.p = bw; bw->cur_search = search_create_context(bw->current_content, callbacks); if (bw->cur_search == NULL) |