Module: wine Branch: master Commit: ff127a3461d8e9f638590242e38b83cb3efd6fce URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff127a3461d8e9f638590242e3...
Author: Jacek Caban jacek@codeweavers.com Date: Tue Aug 2 11:08:48 2011 +0200
mshtml: Always set onclick event handler during document initialization.
---
dlls/mshtml/htmlevent.c | 15 ++++++++++++++- 1 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index c0a998b..9ab07a4 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -141,6 +141,7 @@ typedef struct { #define EVENT_FORWARDBODY 0x0004 #define EVENT_NODEHANDLER 0x0008 #define EVENT_CANCELABLE 0x0010 +#define EVENT_SETONINIT 0x0020
static const event_info_t event_info[] = { {beforeunloadW, onbeforeunloadW, EVENTT_NONE, DISPID_EVMETH_ONBEFOREUNLOAD, @@ -150,7 +151,7 @@ static const event_info_t event_info[] = { {changeW, onchangeW, EVENTT_HTML, DISPID_EVMETH_ONCHANGE, EVENT_DEFAULTLISTENER|EVENT_BUBBLE}, {clickW, onclickW, EVENTT_MOUSE, DISPID_EVMETH_ONCLICK, - EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE}, + EVENT_DEFAULTLISTENER|EVENT_BUBBLE|EVENT_CANCELABLE|EVENT_SETONINIT}, {contextmenuW, oncontextmenuW, EVENTT_MOUSE, DISPID_EVMETH_ONCONTEXTMENU, EVENT_BUBBLE|EVENT_CANCELABLE}, {dblclickW, ondblclickW, EVENTT_MOUSE, DISPID_EVMETH_ONDBLCLICK, @@ -1371,11 +1372,23 @@ void check_event_attr(HTMLDocumentNode *doc, nsIDOMElement *nselem)
HRESULT doc_init_events(HTMLDocumentNode *doc) { + unsigned i; + HRESULT hres; + doc->event_vector = heap_alloc_zero(EVENTID_LAST*sizeof(BOOL)); if(!doc->event_vector) return E_OUTOFMEMORY;
init_nsevents(doc); + + for(i=0; i < EVENTID_LAST; i++) { + if(event_info[i].flags & EVENT_SETONINIT) { + hres = ensure_nsevent_handler(doc, NULL, NULL, i); + if(FAILED(hres)) + return hres; + } + } + return S_OK; }