summaryrefslogtreecommitdiffstats
path: root/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm')
-rw-r--r--Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm13
1 files changed, 7 insertions, 6 deletions
diff --git a/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm b/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm
index 67139b3..fd0f534 100644
--- a/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm
+++ b/Source/WebKit2/UIProcess/mac/WebContextMenuProxyMac.mm
@@ -199,6 +199,9 @@ void WebContextMenuProxyMac::populate(const Vector<WebContextMenuItemData>& item
void WebContextMenuProxyMac::showContextMenu(const IntPoint& menuLocation, const Vector<WebContextMenuItemData>& items)
{
+ if (items.isEmpty())
+ return;
+
populate(items);
[[WKMenuTarget sharedMenuTarget] setMenuProxy:this];
@@ -215,14 +218,12 @@ void WebContextMenuProxyMac::showContextMenu(const IntPoint& menuLocation, const
float vertOffset = roundf((NSMaxY(menuRect) - NSMaxY(titleFrame)) + NSHeight(titleFrame));
NSPoint location = NSMakePoint(NSMinX(menuRect), NSMaxY(menuRect) - vertOffset);
- RetainPtr<NSView> dummyView(AdoptNS, [[NSView alloc] initWithFrame:menuRect]);
- [m_webView addSubview:dummyView.get()];
- location = [dummyView.get() convertPoint:location fromView:m_webView];
-
- WKPopupMenu(menu, location, roundf(NSWidth(menuRect)), dummyView.get(), -1, nil);
+ location = [m_webView convertPoint:location toView:nil];
+ location = [m_webView.window convertBaseToScreen:location];
+
+ WKPopupContextMenu(menu, location);
[m_popup.get() dismissPopUp];
- [dummyView.get() removeFromSuperview];
}
void WebContextMenuProxyMac::hideContextMenu()