summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-07-16 14:51:15 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-07-16 14:51:15 +0200
commit4e6b3a206fa4ad8bb0b664f7674c9a70376d6e26 (patch)
tree7bb9ad7e31c24d1cf1707e03e6f1a80f6d033951 /Source/WebKit2/UIProcess/API/gtk/WebKitFindController.cpp
parent3977e3d2f72f7fe2c887c1ec0e0c342e1d169f42 (diff)
downloadqtwebkit-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.cpp28
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);
}
/**