GNOME Bugzilla – Bug 128905
'Find' featuredoes NOT find all matching text
Last modified: 2004-12-22 21:47:04 UTC
Description: The 'Find' feature does NOT enable users to find all matching text on a page. click on 'Next' button on the 'Find' dialog box, or select 'Edit'->'Find again (Ctrl+G)' will skip certain matching text on the html page. Steps to reproduce: 0) open yelp, 1) load a page (with a few paragraphs , more) 2) use 'Find' feature to find common text, like 'The'. 3) click on the 'NExt' button on the 'Find' dialog box. Results: Certain 'The' on the page are skipped, without highlighting. Expected Results: Click on 'NExt' or 'Ctrl+G' will find next matching characters on the page. Possible Caused: yelp_html_find in yelp-html-gtkhtml2.c. a parsed html doc is a linked list of nodes which has children, and HtmlBoxText is also linked list of chunk of text box, so we need to traverse through the next or children of each htmlbox we get from a node.
Created attachment 22370 [details] [review] patch file for bug #128905 and #128784
Fix bug #128784: 0) invokes html_clear_find_data inside yelp_html_clear 1) invokes html_selection_clear inside yelp_clear_find_data Change 0) will make sure that whenever a new page is loading, we clear existing DomNode and DomNodeIterator that use for searching through the old html page. Change 1) will clear text selected. Fix bug #128905: Rewrite yelp_html_find with full searching through the html page for matching text, change to _YelpHtmlPriv too.
I think there's still a problem here, but I've committed this because it's clearly an improvement. I'm going to leave this bug open until I'm certain.
Upping this to major- a search function that doesn't work is pretty seriously broken for a help browser :/
Hi, I cannot reproduce this in Yelp 2.6.2 or HEAD, so I'm closing this. If you are still experiencing this problem with Yelp (2.6 onwards) please reopen this bug. Thanks