From d09dc4431045df534fd909ade462b9d7c6b8b135 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 13 Aug 2012 23:38:34 +0100 Subject: Use content message broadcast to request scrolls, instead of depending on html and text contents to keep a bw pointer. --- render/search.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'render/search.c') diff --git a/render/search.c b/render/search.c index b6f64daef..246c4e39f 100644 --- a/render/search.c +++ b/render/search.c @@ -202,7 +202,7 @@ void search_step(struct search_context *context, search_flags_t flags, for(i = 0; i < string_len; i++) if (string[i] != '#' && string[i] != '*') break; if (i >= string_len) { - struct browser_window *bw; + union content_msg_data msg_data; free_matches(context); if (context->callbacks->status != NULL) context->callbacks->status(true, context->p); @@ -211,9 +211,10 @@ void search_step(struct search_context *context, search_flags_t flags, if (context->callbacks->forward_state != NULL) context->callbacks->forward_state(false, context->p); - bw = search_get_browser_window(context); - if (bw != NULL) - browser_window_set_scroll(bw, 0, 0); + msg_data.scroll.area = false; + msg_data.scroll.x0 = 0; + msg_data.scroll.y0 = 0; + content_broadcast(context->c, CONTENT_MSG_SCROLL, msg_data); return; } search_text(string, string_len, context, flags); @@ -259,7 +260,7 @@ void search_text(const char *string, int string_len, { struct rect bounds; struct box *box = NULL; - struct browser_window *bw; + union content_msg_data msg_data; bool case_sensitive, forwards, showall; case_sensitive = ((flags & SEARCH_FLAG_CASE_SENSITIVE) != 0) ? @@ -374,9 +375,12 @@ void search_text(const char *string, int string_len, context->current->end_idx, &bounds); } - bw = search_get_browser_window(context); - if (bw != NULL) - browser_window_scroll_visible(bw, &bounds); + msg_data.scroll.area = true; + msg_data.scroll.x0 = bounds.x0; + msg_data.scroll.y0 = bounds.y0; + msg_data.scroll.x1 = bounds.x1; + msg_data.scroll.y1 = bounds.y1; + content_broadcast(context->c, CONTENT_MSG_SCROLL, msg_data); } /** -- cgit v1.2.3