Jacek Caban : mshtml: Always create event object in fire_event.
Module: wine Branch: master Commit: a6ee270f0f3f937cff14d0388dbe81c86bea1317 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a6ee270f0f3f937cff14d0388d... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Sun Sep 6 18:54:49 2009 +0200 mshtml: Always create event object in fire_event. --- dlls/mshtml/htmlevent.c | 19 +++++-------------- 1 files changed, 5 insertions(+), 14 deletions(-) diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index df121b0..b2a1e01 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -499,18 +499,15 @@ void fire_event(HTMLDocument *doc, eventid_t eid, nsIDOMNode *target) } prev_event = doc->window->event; + event_obj = doc->window->event = create_event(get_node(doc, target, TRUE)); nsnode = target; nsIDOMNode_AddRef(nsnode); while(1) { node = get_node(doc, nsnode, FALSE); - if(node) { - if(!event_obj) - event_obj = doc->window->event = create_event(get_node(doc, target, TRUE)); - + if(node) call_event_handlers(doc, node->event_target, eid, (IDispatch*)HTMLDOMNODE(node)); - } if(!(event_info[eid].flags & EVENT_BUBBLE)) break; @@ -529,17 +526,11 @@ void fire_event(HTMLDocument *doc, eventid_t eid, nsIDOMNode *target) if(nsnode) nsIDOMNode_Release(nsnode); - if(event_info[eid].flags & EVENT_BUBBLE) { - if(!event_obj) - event_obj = doc->window->event = create_event(get_node(doc, target, TRUE)); - + if(event_info[eid].flags & EVENT_BUBBLE) call_event_handlers(doc, doc->event_target, eid, (IDispatch*)HTMLDOC(doc)); - } - if(event_obj) { - IHTMLEventObj_Release(event_obj); - doc->window->event = prev_event; - } + IHTMLEventObj_Release(event_obj); + doc->window->event = prev_event; } static HRESULT set_event_handler_disp(event_target_t **event_target, HTMLDocument *doc, eventid_t eid, IDispatch *disp)
participants (1)
-
Alexandre Julliard