Jacek Caban : mshtml: Don't use fire_event to dispatch contextmenu event.

Alexandre Julliard julliard at winehq.org
Fri Oct 20 15:09:36 CDT 2017


Module: wine
Branch: master
Commit: 6bf1250b826b3ee16e12d6ff29edda8f354e9e52
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6bf1250b826b3ee16e12d6ff29edda8f354e9e52

Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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:




More information about the wine-cvs mailing list