Module: wine Branch: master Commit: 6bf1250b826b3ee16e12d6ff29edda8f354e9e52 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6bf1250b826b3ee16e12d6ff29...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Oct 20 15:09:29 2017 +0200
mshtml: Don't use fire_event to dispatch contextmenu event.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/mshtml/nsembed.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c index bb4f122..c811a0f 100644 --- a/dlls/mshtml/nsembed.c +++ b/dlls/mshtml/nsembed.c @@ -1486,8 +1486,9 @@ static nsresult NSAPI nsContextMenuListener_OnShowContextMenu(nsIContextMenuList UINT32 aContextFlags, nsIDOMEvent *aEvent, nsIDOMNode *aNode) { NSContainer *This = impl_from_nsIContextMenuListener(iface); - nsIDOMMouseEvent *event; + nsIDOMMouseEvent *mouse_event; HTMLDOMNode *node; + DOMEvent *event; POINT pt; DWORD dwID = CONTEXT_MENU_DEFAULT; nsresult nsres; @@ -1499,14 +1500,18 @@ static nsresult NSAPI nsContextMenuListener_OnShowContextMenu(nsIContextMenuList if(FAILED(hres)) return NS_ERROR_FAILURE;
- fire_event(This->doc->basedoc.doc_node /* FIXME */, EVENTID_CONTEXTMENU, TRUE, &node->event_target, aEvent); + hres = create_event_from_nsevent(aEvent, &event); + if(SUCCEEDED(hres)) { + fire_event_obj(&node->event_target, event); + IDOMEvent_Release(&event->IDOMEvent_iface); + }
- nsres = nsIDOMEvent_QueryInterface(aEvent, &IID_nsIDOMMouseEvent, (void**)&event); + nsres = nsIDOMEvent_QueryInterface(aEvent, &IID_nsIDOMMouseEvent, (void**)&mouse_event); assert(NS_SUCCEEDED(nsres));
- nsIDOMMouseEvent_GetScreenX(event, &pt.x); - nsIDOMMouseEvent_GetScreenY(event, &pt.y); - nsIDOMMouseEvent_Release(event); + nsIDOMMouseEvent_GetScreenX(mouse_event, &pt.x); + nsIDOMMouseEvent_GetScreenY(mouse_event, &pt.y); + nsIDOMMouseEvent_Release(mouse_event);
switch(aContextFlags) { case CONTEXT_NONE: