summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/src/ContextMenuClientImpl.cpp
diff options
context:
space:
mode:
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