[PATCH 2/4] mshtml: Added IDOMEvent::get_defaultPrevented implementation.
Jacek Caban <[email protected]>
| Newsgroups | gmane.comp.emulators.wine.patches |
|---|---|
| Message-ID | <[email protected]> |
Signed-off-by: Jacek Caban <[email protected]> --- dlls/mshtml/htmlevent.c | 7 +++++-- dlls/mshtml/tests/events.js | 26 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-)
0002-mshtml-Added-IDOMEvent-get_defaultPrevented-implement.diff
(text/x-patch, 1.9 KB)
diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index d57ff19ee2..9e232bebe7 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -995,8 +995,11 @@ static HRESULT WINAPI DOMEvent_get_currentTarget(IDOMEvent *iface, IEventTarget
static HRESULT WINAPI DOMEvent_get_defaultPrevented(IDOMEvent *iface, VARIANT_BOOL *p)
{
DOMEvent *This = impl_from_IDOMEvent(iface);
- FIXME("(%p)->(%p)\n", This, p);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ *p = variant_bool(This->prevent_default);
+ return S_OK;
}
static HRESULT WINAPI DOMEvent_get_eventPhase(IDOMEvent *iface, USHORT *p)
diff --git a/dlls/mshtml/tests/events.js b/dlls/mshtml/tests/events.js
index 4a064f9832..4c552b6508 100644
--- a/dlls/mshtml/tests/events.js
+++ b/dlls/mshtml/tests/events.js
@@ -267,6 +267,31 @@ function test_stop_propagation() {
next_test();
}
+function test_prevent_default() {
+ document.body.innerHTML = '<div><a href="about:blank"></a></div>';
+ var div = document.body.firstChild;
+ var a = div.firstChild;
+ var calls;
+
+ div.addEventListener("click", function(e) {
+ calls += "div,";
+ ok(e.defaultPrevented === false, "e.defaultPrevented = " + e.defaultPrevented);
+ e.preventDefault();
+ ok(e.defaultPrevented === true, "e.defaultPrevented = " + e.defaultPrevented);
+ }, true);
+
+ a.addEventListener("click", function(e) {
+ calls += "a,";
+ ok(e.defaultPrevented === true, "e.defaultPrevented = " + e.defaultPrevented);
+ }, true);
+
+ calls = "";
+ a.click();
+ ok(calls === "div,a,", "calls = " + calls);
+
+ next_test();
+}
+
var tests = [
test_content_loaded,
test_add_remove_listener,
@@ -274,5 +299,6 @@ var tests = [
test_remove_listener_in_listener,
test_event_phase,
test_stop_propagation,
+ test_prevent_default,
test_listener_order
];