diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-16 14:51:15 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-07-16 14:51:15 +0200 |
commit | 4e6b3a206fa4ad8bb0b664f7674c9a70376d6e26 (patch) | |
tree | 7bb9ad7e31c24d1cf1707e03e6f1a80f6d033951 /Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp | |
parent | 3977e3d2f72f7fe2c887c1ec0e0c342e1d169f42 (diff) | |
download | qtwebkit-4e6b3a206fa4ad8bb0b664f7674c9a70376d6e26.tar.gz |
Imported WebKit commit 953baa67aa07087b6ecd4199351ec554c724e27d (http://svn.webkit.org/repository/webkit/trunk@122676)
Diffstat (limited to 'Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp')
-rw-r--r-- | Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp b/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp index 360137e16..56be3c767 100644 --- a/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp +++ b/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp @@ -48,6 +48,7 @@ enum { typedef enum { FindOperation, + FindNextPrevOperation, CountOperation } WebKitFindControllerOperation; @@ -345,17 +346,22 @@ static void webKitFindControllerPerform(WebKitFindController* findController, We WKRetainPtr<WKStringRef> wkSearchText(AdoptWK, WKStringCreateWithUTF8CString(findController->priv->searchText.data())); WKPageRef wkPage = getWKPageFromWebKitWebView(findController->priv->webView); - if (operation == FindOperation) { - // Unconditionally highlight text matches. WK1 API was forcing - // clients to enable/disable highlighting. Since most of them - // (all?) where using highlighting we decided to simplify the - // WK2 API and unconditionally show highlights. - wkFindOptions = static_cast<WKFindOptions>(findController->priv->findOptions | kWKFindOptionsShowHighlight); - WKPageFindString(wkPage, wkSearchText.get(), wkFindOptions, findController->priv->maxMatchCount); + if (operation == CountOperation) { + WKPageCountStringMatches(wkPage, wkSearchText.get(), wkFindOptions, findController->priv->maxMatchCount); return; } - WKPageCountStringMatches(wkPage, wkSearchText.get(), wkFindOptions, findController->priv->maxMatchCount); + if (operation == FindOperation) + // Unconditionally highlight text matches when the search + // starts. WK1 API was forcing clients to enable/disable + // highlighting. Since most of them (all?) where using that + // feature we decided to simplify the WK2 API and + // unconditionally show highlights. Both search_next() and + // search_prev() should not enable highlighting to avoid an + // extra unmarkAllTextMatches() + markAllTextMatches() + wkFindOptions = static_cast<WKFindOptions>(findController->priv->findOptions | kWKFindOptionsShowHighlight); + + WKPageFindString(wkPage, wkSearchText.get(), wkFindOptions, findController->priv->maxMatchCount); } static inline void webKitFindControllerSetSearchData(WebKitFindController* findController, const gchar* searchText, guint32 findOptions, guint maxMatchCount) @@ -415,7 +421,8 @@ void webkit_find_controller_search_next(WebKitFindController* findController) g_return_if_fail(WEBKIT_IS_FIND_CONTROLLER(findController)); findController->priv->findOptions = findController->priv->findOptions & ~WEBKIT_FIND_OPTIONS_BACKWARDS; - webKitFindControllerPerform(findController, FindOperation); + findController->priv->findOptions = findController->priv->findOptions & ~kWKFindOptionsShowHighlight; + webKitFindControllerPerform(findController, FindNextPrevOperation); } /** @@ -432,7 +439,8 @@ void webkit_find_controller_search_previous(WebKitFindController* findController g_return_if_fail(WEBKIT_IS_FIND_CONTROLLER(findController)); findController->priv->findOptions = findController->priv->findOptions | WEBKIT_FIND_OPTIONS_BACKWARDS; - webKitFindControllerPerform(findController, FindOperation); + findController->priv->findOptions = findController->priv->findOptions & ~kWKFindOptionsShowHighlight; + webKitFindControllerPerform(findController, FindNextPrevOperation); } /** |