mshtml: Pass the IDispatch interface of the element right-clicked on to IDocHostUIHandler_ShowContextMenu if applicable instead of always the document's one.
Found by Rob Shearman.
This commit is contained in:
parent
42349000c4
commit
f5ef66a369
|
@ -362,7 +362,7 @@ NSContainer *NSContainer_Create(HTMLDocument*,NSContainer*);
|
||||||
void NSContainer_Release(NSContainer*);
|
void NSContainer_Release(NSContainer*);
|
||||||
|
|
||||||
void HTMLDocument_LockContainer(HTMLDocument*,BOOL);
|
void HTMLDocument_LockContainer(HTMLDocument*,BOOL);
|
||||||
void show_context_menu(HTMLDocument*,DWORD,POINT*);
|
void show_context_menu(HTMLDocument*,DWORD,POINT*,IDispatch*);
|
||||||
void notif_focus(HTMLDocument*);
|
void notif_focus(HTMLDocument*);
|
||||||
|
|
||||||
void show_tooltip(HTMLDocument*,DWORD,DWORD,LPCWSTR);
|
void show_tooltip(HTMLDocument*,DWORD,DWORD,LPCWSTR);
|
||||||
|
|
|
@ -997,7 +997,7 @@ static nsresult NSAPI nsContextMenuListener_OnShowContextMenu(nsIContextMenuList
|
||||||
FIXME("aContextFlags=%08x\n", aContextFlags);
|
FIXME("aContextFlags=%08x\n", aContextFlags);
|
||||||
};
|
};
|
||||||
|
|
||||||
show_context_menu(This->doc, dwID, &pt);
|
show_context_menu(This->doc, dwID, &pt, (IDispatch*)HTMLDOMNODE(get_node(This->doc, aNode)));
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -852,14 +852,14 @@ static const IOleCommandTargetVtbl OleCommandTargetVtbl = {
|
||||||
OleCommandTarget_Exec
|
OleCommandTarget_Exec
|
||||||
};
|
};
|
||||||
|
|
||||||
void show_context_menu(HTMLDocument *This, DWORD dwID, POINT *ppt)
|
void show_context_menu(HTMLDocument *This, DWORD dwID, POINT *ppt, IDispatch *elem)
|
||||||
{
|
{
|
||||||
HMENU menu_res, menu;
|
HMENU menu_res, menu;
|
||||||
DWORD cmdid;
|
DWORD cmdid;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
|
|
||||||
hres = IDocHostUIHandler_ShowContextMenu(This->hostui, dwID, ppt,
|
hres = IDocHostUIHandler_ShowContextMenu(This->hostui, dwID, ppt,
|
||||||
(IUnknown*)CMDTARGET(This), (IDispatch*)HTMLDOC(This));
|
(IUnknown*)CMDTARGET(This), elem);
|
||||||
if(hres == S_OK)
|
if(hres == S_OK)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue