summaryrefslogtreecommitdiff
path: root/desktop
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2012-08-14 14:03:54 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2012-08-14 14:03:54 +0100
commit5526d7e6f2e071a115359f6b9c0dca7b2c4c4efe (patch)
tree74e72ab157ae3c7177aae24d4ff62fa586096535 /desktop
parentb51816c222dded2095fc2d5c1581575540095f43 (diff)
downloadnetsurf-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.c15
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)