Implement deduplication of searches on webkit

This commit is contained in:
Jay Kamat 2018-02-25 18:40:16 -05:00
parent 4602afe770
commit 7a8fa5f46e
No known key found for this signature in database
GPG Key ID: 5D2E399600F4F7B5
3 changed files with 8 additions and 3 deletions

View File

@ -183,7 +183,7 @@ class WebEngineSearch(browsertab.AbstractSearch):
def search(self, text, *, ignore_case='never', reverse=False,
result_cb=None):
# When duplicate searching, don't search again (webkit behavior)
# Don't go to next entry on duplicate search
if self.text == text and self.search_displayed:
log.webview.debug("Ignoring duplicate search request"
" for {}".format(text))

View File

@ -146,8 +146,14 @@ class WebKitSearch(browsertab.AbstractSearch):
def search(self, text, *, ignore_case='never', reverse=False,
result_cb=None):
self.search_displayed = True
# Don't go to next entry on duplicate search
if self.text == text and self.search_displayed:
log.webview.debug("Ignoring duplicate search request"
" for {}".format(text))
return
self.text = text
self.search_displayed = True
self._flags = QWebPage.FindWrapsAroundDocument
if self._is_case_sensitive(ignore_case):
self._flags |= QWebPage.FindCaseSensitively

View File

@ -52,7 +52,6 @@ Feature: Searching on a page
And I wait for "search didn't find blub" in the log
Then the warning "Text 'blub' not found on page!" should be shown
@qtwebkit_skip: Supported by default on qtwebkit
Scenario: Searching text duplicates
When I run :search foo
And I wait for "search found foo" in the log