Use different AppKit API for all services menus
authorbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jun 2014 18:43:30 +0000 (18:43 +0000)
committerbeidson@apple.com <beidson@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jun 2014 18:43:30 +0000 (18:43 +0000)
<rdar://problem/16874403> and https://bugs.webkit.org/show_bug.cgi?id=133649

Reviewed by Tim Horton.

* UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::showContextMenu):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@169701 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm

index 4f7f476..cbd262d 100644 (file)
@@ -1,3 +1,13 @@
+2014-06-09  Brady Eidson  <beidson@apple.com>
+
+        Use different AppKit API for all services menus
+        <rdar://problem/16874403> and https://bugs.webkit.org/show_bug.cgi?id=133649
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/mac/WebContextMenuProxyMac.mm:
+        (WebKit::WebContextMenuProxyMac::showContextMenu):
+
 2014-06-09  Anders Carlsson  <andersca@apple.com>
 
         Add WKWindowFeatures.h to the umbrella header.
index 94a90bb..1ffbe6e 100644 (file)
@@ -458,11 +458,11 @@ void WebContextMenuProxyMac::showContextMenu(const IntPoint& menuLocation, const
 
     NSMenu *menu = m_servicesMenu ? m_servicesMenu.get() : [m_popup menu];
 
-    // Telephone number menus must use the [NSMenu popUpMenuPositioningItem:atLocation:inView:] API.
+    // Telephone number and service menus must use the [NSMenu popUpMenuPositioningItem:atLocation:inView:] API.
     // FIXME: That API is better than WKPopupContextMenu. In the future all menus should use either it
     // or the [NSMenu popUpContextMenu:withEvent:forView:] API, depending on the menu type.
     // Then we could get rid of NSPopUpButtonCell, custom metrics, and WKPopupContextMenu.
-    if (context.isTelephoneNumberContext()) {
+    if (context.isTelephoneNumberContext() || context.needsServicesMenu()) {
         [menu popUpMenuPositioningItem:nil atLocation:menuLocation inView:m_webView];
         hideContextMenu();
         return;