Title: [169079] trunk/Source/WebKit/mac
- Revision
- 169079
- Author
- [email protected]
- Date
- 2014-05-19 15:41:18 -0700 (Mon, 19 May 2014)
Log Message
Use different AppKit API for image control menus.
<rdar://problem/16807828> and https://bugs.webkit.org/show_bug.cgi?id=133087
Reviewed by Tim Horton.
For image control menus, use popUpMenuPositioningItem: instead of popUpContextMenu:
* WebCoreSupport/WebContextMenuClient.h:
* WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::contextMenuForEvent):
(WebContextMenuClient::showContextMenu):
Modified Paths
Diff
Modified: trunk/Source/WebKit/mac/ChangeLog (169078 => 169079)
--- trunk/Source/WebKit/mac/ChangeLog 2014-05-19 22:39:27 UTC (rev 169078)
+++ trunk/Source/WebKit/mac/ChangeLog 2014-05-19 22:41:18 UTC (rev 169079)
@@ -1,3 +1,17 @@
+2014-05-19 Brady Eidson <[email protected]>
+
+ Use different AppKit API for image control menus.
+ <rdar://problem/16807828> and https://bugs.webkit.org/show_bug.cgi?id=133087
+
+ Reviewed by Tim Horton.
+
+ For image control menus, use popUpMenuPositioningItem: instead of popUpContextMenu:
+
+ * WebCoreSupport/WebContextMenuClient.h:
+ * WebCoreSupport/WebContextMenuClient.mm:
+ (WebContextMenuClient::contextMenuForEvent):
+ (WebContextMenuClient::showContextMenu):
+
2014-05-19 Andy Estes <[email protected]>
Set WebKitSuppressesIncrementalRenderingKey to NO by default on both Mac and iOS
Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.h (169078 => 169079)
--- trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.h 2014-05-19 22:39:27 UTC (rev 169078)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.h 2014-05-19 22:41:18 UTC (rev 169079)
@@ -65,7 +65,7 @@
WebView *webView() { return m_webView; }
private:
- NSMenu *contextMenuForEvent(NSEvent *, NSView *);
+ NSMenu *contextMenuForEvent(NSEvent *, NSView *, bool& isServicesMenu);
bool clientFloatRectForNode(WebCore::Node&, WebCore::FloatRect&) const;
Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm (169078 => 169079)
--- trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm 2014-05-19 22:39:27 UTC (rev 169078)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebContextMenuClient.mm 2014-05-19 22:41:18 UTC (rev 169079)
@@ -460,8 +460,10 @@
#endif
-NSMenu *WebContextMenuClient::contextMenuForEvent(NSEvent *event, NSView *view)
+NSMenu *WebContextMenuClient::contextMenuForEvent(NSEvent *event, NSView *view, bool& isServicesMenu)
{
+ isServicesMenu = false;
+
Page* page = [m_webView page];
if (!page)
return nil;
@@ -476,7 +478,8 @@
bool isContentEditable = page->contextMenuController().context().hitTestResult().innerNode()->isContentEditable();
m_sharingServicePickerController = adoptNS([[WebSharingServicePickerController alloc] initWithData:(NSData *)cfData.get() includeEditorServices:isContentEditable menuClient:this]);
-
+
+ isServicesMenu = true;
return [m_sharingServicePickerController menu];
}
#endif
@@ -501,8 +504,13 @@
NSEvent* event = [NSEvent mouseEventWithType:NSRightMouseDown location:point modifierFlags:0 timestamp:0 windowNumber:[[view window] windowNumber] context:0 eventNumber:0 clickCount:1 pressure:1];
// Show the contextual menu for this event.
- if (NSMenu *menu = contextMenuForEvent(event, view))
- [NSMenu popUpContextMenu:menu withEvent:event forView:view];
+ bool isServicesMenu;
+ if (NSMenu *menu = contextMenuForEvent(event, view, isServicesMenu)) {
+ if (isServicesMenu)
+ [menu popUpMenuPositioningItem:nil atLocation:[view convertPoint:point toView:nil] inView:view];
+ else
+ [NSMenu popUpContextMenu:menu withEvent:event forView:view];
+ }
}
#if ENABLE(SERVICE_CONTROLS)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes