Jacek Caban : mshtml: Always create event object in fire_event.
Alexandre Julliard
julliard at winehq.org
Tue Sep 8 08:54:56 CDT 2009
Module: wine
Branch: master
Commit: a6ee270f0f3f937cff14d0388dbe81c86bea1317
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a6ee270f0f3f937cff14d0388dbe81c86bea1317
Author: Jacek Caban <jacek at 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)
More information about the wine-cvs
mailing list