summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-25 15:09:11 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-25 15:09:11 +0200
commita89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (patch)
treeb7abd9f49ae1d4d2e426a5883bfccd42b8e2ee12 /Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
parent8d473cf9743f1d30a16a27114e93bd5af5648d23 (diff)
downloadqtwebkit-a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd.tar.gz
Imported WebKit commit eb5c1b8fe4d4b1b90b5137433fc58a91da0e6878 (http://svn.webkit.org/repository/webkit/trunk@118516)
Diffstat (limited to 'Source/WebKit/chromium/src/ContextMenuClientImpl.cpp')
-rw-r--r--Source/WebKit/chromium/src/ContextMenuClientImpl.cpp30
1 files changed, 18 insertions, 12 deletions
diff --git a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
index d35eb0e6c..5871f44e1 100644
--- a/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
+++ b/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
@@ -280,7 +280,7 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
if (selectedFrame->settings() && selectedFrame->settings()->asynchronousSpellCheckingEnabled()) {
RefPtr<Range> range = selectedFrame->selection()->toNormalizedRange();
if (range.get()) {
- Vector<DocumentMarker*> markers = selectedFrame->document()->markers()->markersInRange(range.get(), DocumentMarker::Spelling);
+ Vector<DocumentMarker*> markers = selectedFrame->document()->markers()->markersInRange(range.get(), DocumentMarker::Spelling | DocumentMarker::Grammar);
if (!markers.isEmpty()) {
Vector<String> suggestions;
for (size_t i = 0; i < markers.size(); ++i) {
@@ -347,12 +347,12 @@ PlatformMenuDescription ContextMenuClientImpl::getCustomMenuFromDefaultItems(
return 0;
}
-void ContextMenuClientImpl::populateCustomMenuItems(WebCore::ContextMenu* defaultMenu, WebContextMenuData* data)
+static void populateSubMenuItems(PlatformMenuDescription inputMenu, WebVector<WebMenuItemInfo>& subMenuItems)
{
- Vector<WebMenuItemInfo> customItems;
- for (size_t i = 0; i < defaultMenu->itemCount(); ++i) {
- ContextMenuItem* inputItem = defaultMenu->itemAtIndex(i, defaultMenu->platformDescription());
- if (inputItem->action() < ContextMenuItemBaseCustomTag || inputItem->action() > ContextMenuItemLastCustomTag)
+ Vector<WebMenuItemInfo> subItems;
+ for (size_t i = 0; i < inputMenu->size(); ++i) {
+ const ContextMenuItem* inputItem = &inputMenu->at(i);
+ if (inputItem->action() < ContextMenuItemBaseCustomTag || inputItem->action() > ContextMenuItemLastCustomTag)
continue;
WebMenuItemInfo outputItem;
@@ -371,16 +371,22 @@ void ContextMenuClientImpl::populateCustomMenuItems(WebCore::ContextMenu* defaul
outputItem.type = WebMenuItemInfo::Separator;
break;
case SubmenuType:
- outputItem.type = WebMenuItemInfo::Group;
+ outputItem.type = WebMenuItemInfo::SubMenu;
+ populateSubMenuItems(inputItem->platformSubMenu(), outputItem.subMenuItems);
break;
}
- customItems.append(outputItem);
+ subItems.append(outputItem);
}
- WebVector<WebMenuItemInfo> outputItems(customItems.size());
- for (size_t i = 0; i < customItems.size(); ++i)
- outputItems[i] = customItems[i];
- data->customItems.swap(outputItems);
+ WebVector<WebMenuItemInfo> outputItems(subItems.size());
+ for (size_t i = 0; i < subItems.size(); ++i)
+ outputItems[i] = subItems[i];
+ subMenuItems.swap(outputItems);
+}
+
+void ContextMenuClientImpl::populateCustomMenuItems(WebCore::ContextMenu* defaultMenu, WebContextMenuData* data)
+{
+ populateSubMenuItems(defaultMenu->platformDescription(), data->customItems);
}
} // namespace WebKit