From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlevent.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c index 45db4719b10..bcde9f38bba 100644 --- a/dlls/mshtml/htmlevent.c +++ b/dlls/mshtml/htmlevent.c @@ -3683,11 +3683,14 @@ static HRESULT dispatch_event_object(EventTarget *event_target, DOMEvent *event, *r = variant_bool(!event->prevent_default);
if(target_vtbl && target_vtbl->set_current_event) { - prev_event = target_vtbl->set_current_event(&event_target->dispex, prev_event); - if(prev_event) - IHTMLEventObj_Release(prev_event); + IHTMLEventObj *prev = target_vtbl->set_current_event(&event_target->dispex, prev_event); + if(prev) + IHTMLEventObj_Release(prev); }
+ if(prev_event) + IHTMLEventObj_Release(prev_event); + if(event_info[event->event_id].flags & EVENT_HASDEFAULTHANDLERS) { BOOL prevent_default = event->prevent_default; for(i = 0; !prevent_default && i < chain_cnt; i++) {