path: root/content/content.c
diff options
authorMichael Drake <>2013-05-07 14:41:40 +0100
committerMichael Drake <>2013-05-07 14:41:40 +0100
commit3afd9c97310d58c0c6588d18887244328590731e (patch)
tree133917633f801613e8742d8b313faee3c4f47e71 /content/content.c
parent0647d69a8b8663fcc09af118dde6b256624fe232 (diff)
Remove search context from browser window, simplify search interface for front ends.
Added content interface for search. Removed bw->cur_search search context. Desktop layer now does nothing except pass search requests from front end onto the bw's current_content via the content interface. Search API reduced to a pair of functions at each level: {desktop|content|html|textplain}_search and {desktop|content|html|textplain}_search_clear Updated front ends to use simplified search API. Only tested GTK and RO builds. These confine the search stuff to render/. However search still uses struct selection. The handling for which is still spread over desktop/ and render/. Also the render/search code itself still fiddles inside html and textplain privates.
Diffstat (limited to 'content/content.c')
1 files changed, 22 insertions, 0 deletions
diff --git a/content/content.c b/content/content.c
index 3533d943c..74abdbfab 100644
--- a/content/content.c
+++ b/content/content.c
@@ -831,6 +831,28 @@ bool content_drop_file_at_point(struct hlcache_handle *h,
+void content_search(struct hlcache_handle *h,
+ struct gui_search_callbacks *gui_callbacks, void *gui_data,
+ search_flags_t flags, const char *string)
+ struct content *c = hlcache_handle_get_content(h);
+ assert(c != 0);
+ if (c->handler->search != NULL)
+ c->handler->search(c, gui_callbacks, gui_data, flags, string);
+void content_search_clear(struct hlcache_handle *h)
+ struct content *c = hlcache_handle_get_content(h);
+ assert(c != 0);
+ if (c->handler->search_clear != NULL)
+ c->handler->search_clear(c);
void content_debug_dump(struct hlcache_handle *h, FILE *f)
struct content *c = hlcache_handle_get_content(h);