Jacek Caban : mshtml: Don' t use fire_event to dispatch focusin and focusout events.
Module: wine Branch: master Commit: 8aaa18fd558a848215571fa5f7d327dda15ef82c URL: http://source.winehq.org/git/wine.git/?a=commit;h=8aaa18fd558a848215571fa5f7... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Fri Oct 20 15:10:11 2017 +0200 mshtml: Don't use fire_event to dispatch focusin and focusout events. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/mshtml/nsevents.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/dlls/mshtml/nsevents.c b/dlls/mshtml/nsevents.c index 4e79f63..3ba506f 100644 --- a/dlls/mshtml/nsevents.c +++ b/dlls/mshtml/nsevents.c @@ -331,17 +331,14 @@ static nsresult NSAPI handle_htmlevent(nsIDOMEventListener *iface, nsIDOMEvent * } /* If we fine need for more special cases here, we may consider handling it in a more generic way. */ - switch(event->event_id) { - case EVENTID_FOCUS: - if(doc->event_vector[EVENTID_FOCUSIN]) - fire_event(doc, EVENTID_FOCUSIN, TRUE, &node->event_target, NULL); - break; - case EVENTID_BLUR: - if(doc->event_vector[EVENTID_FOCUSOUT]) - fire_event(doc, EVENTID_FOCUSOUT, TRUE, &node->event_target, NULL); - break; - default: - break; + if(event->event_id == EVENTID_FOCUS || event->event_id == EVENTID_BLUR) { + DOMEvent *focus_event; + + hres = create_document_event(doc, event->event_id == EVENTID_FOCUS ? EVENTID_FOCUSIN : EVENTID_FOCUSOUT, &focus_event); + if(SUCCEEDED(hres)) { + fire_event_obj(&node->event_target, focus_event); + IDOMEvent_Release(&focus_event->IDOMEvent_iface); + } } fire_event_obj(&node->event_target, event);
participants (1)
-
Alexandre Julliard