Jacek Caban : mshtml: Added IDOMEvent::get_srcElement implementation.
Alexandre Julliard
julliard at winehq.org
Wed Jan 24 16:02:32 CST 2018
Module: wine
Branch: master
Commit: 07954f36215ebef81205437f0ae87b38f0505d86
URL: https://source.winehq.org/git/wine.git/?a=commit;h=07954f36215ebef81205437f0ae87b38f0505d86
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Jan 24 17:38:12 2018 +0100
mshtml: Added IDOMEvent::get_srcElement implementation.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mshtml/htmlevent.c | 20 ++++++++++++++------
dlls/mshtml/tests/events.js | 3 +++
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index abc0a1c..8e977f1 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -396,10 +396,12 @@ static HRESULT WINAPI HTMLEventObj_get_srcElement(IHTMLEventObj *iface, IHTMLEle
TRACE("(%p)->(%p)\n", This, p);
- *p = NULL;
- if(This->event && This->event->target)
- IDispatchEx_QueryInterface(&This->event->target->dispex.IDispatchEx_iface, &IID_IHTMLElement, (void**)p);
- return S_OK;
+ if(!This->event) {
+ *p = NULL;
+ return S_OK;
+ }
+
+ return IDOMEvent_get_srcElement(&This->event->IDOMEvent_iface, p);
}
static HRESULT WINAPI HTMLEventObj_get_altKey(IHTMLEventObj *iface, VARIANT_BOOL *p)
@@ -1167,8 +1169,14 @@ static HRESULT WINAPI DOMEvent_get_cancelBubble(IDOMEvent *iface, VARIANT_BOOL *
static HRESULT WINAPI DOMEvent_get_srcElement(IDOMEvent *iface, IHTMLElement **p)
{
DOMEvent *This = impl_from_IDOMEvent(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ if(This->target)
+ IDispatchEx_QueryInterface(&This->target->dispex.IDispatchEx_iface, &IID_IHTMLElement, (void**)p);
+ else
+ *p = NULL;
+ return S_OK;
}
static const IDOMEventVtbl DOMEventVtbl = {
diff --git a/dlls/mshtml/tests/events.js b/dlls/mshtml/tests/events.js
index f471b86..30d23c7 100644
--- a/dlls/mshtml/tests/events.js
+++ b/dlls/mshtml/tests/events.js
@@ -469,6 +469,7 @@ function test_dispatch_event() {
return function(event) {
ok(event === e, "event != e");
ok(event.target === child, "target != child");
+ ok(event.srcElement === child, "srcElement != child");
calls += msg + ",";
};
}
@@ -485,12 +486,14 @@ function test_dispatch_event() {
e = document.createEvent("Event");
e.initEvent("click", true, true);
ok(e.target === null, "e.target != null");
+ ok(e.srcElement === null, "e.srcElement != null");
calls = "";
child.dispatchEvent(e);
ok(calls === "parent.click(capture),child.click(capture),child.click(bubble),"
+ "parent.click(bubble),", "calls = " + calls);
ok(e.target === child, "e.target != child");
+ ok(e.srcElement === child, "e.srcElement != child");
ok(e.currentTarget === null, "e.currentTarget != null");
e = document.createEvent("Event");
More information about the wine-cvs
mailing list