Jacek Caban : mshtml: Added IDOMEvent:: get_defaultPrevented implementation.

Alexandre Julliard julliard at winehq.org
Thu Nov 2 17:28:50 CDT 2017


Module: wine
Branch: master
Commit: bbffabf1b1c8d3fe78861912a14e3ddf78ebe913
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bbffabf1b1c8d3fe78861912a14e3ddf78ebe913

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Nov  2 16:47:53 2017 +0100

mshtml: Added IDOMEvent::get_defaultPrevented implementation.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/htmlevent.c     |  7 +++++--
 dlls/mshtml/tests/events.js | 26 ++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index d57ff19..9e232be 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 4a064f9..4c552b6 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
 ];




More information about the wine-cvs mailing list