diff options
-rw-r--r-- | src/components/script/dom/event.rs | 16 | ||||
-rw-r--r-- | src/components/script/dom/mouseevent.rs | 27 | ||||
-rw-r--r-- | src/components/script/dom/uievent.rs | 25 |
3 files changed, 40 insertions, 28 deletions
diff --git a/src/components/script/dom/event.rs b/src/components/script/dom/event.rs index 00bf6868e43..b7509941abf 100644 --- a/src/components/script/dom/event.rs +++ b/src/components/script/dom/event.rs @@ -5,7 +5,7 @@ use dom::eventtarget::EventTarget; use dom::window::Window; use dom::bindings::codegen::EventBinding; -use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::bindings::utils::{DOMString, ErrorResult, Fallible}; use geom::point::Point2D; @@ -31,7 +31,7 @@ pub struct Event { } impl Event { - pub fn new(type_: &DOMString) -> Event { + pub fn new_inherited(type_: &DOMString) -> Event { Event { reflector_: Reflector::new(), type_: (*type_).clone(), @@ -42,6 +42,10 @@ impl Event { } } + pub fn new(window: @mut Window, type_: &DOMString) -> @mut Event { + reflect_dom_object(@mut Event::new_inherited(type_), window, EventBinding::Wrap) + } + pub fn init_wrapper(@mut self, cx: *JSContext, scope: *JSObject) { self.wrap_object_shared(cx, scope); } @@ -102,10 +106,10 @@ impl Event { self.trusted } - pub fn Constructor(_global: @mut Window, + pub fn Constructor(global: @mut Window, type_: &DOMString, _init: &EventBinding::EventInit) -> Fallible<@mut Event> { - Ok(@mut Event::new(type_)) + Ok(Event::new(global, type_)) } } @@ -118,8 +122,8 @@ impl Reflectable for Event { &mut self.reflector_ } - fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { - EventBinding::Wrap(cx, scope, self) + fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject { + unreachable!() } fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> { diff --git a/src/components/script/dom/mouseevent.rs b/src/components/script/dom/mouseevent.rs index ffe871b6485..a24a11102cf 100644 --- a/src/components/script/dom/mouseevent.rs +++ b/src/components/script/dom/mouseevent.rs @@ -4,7 +4,7 @@ use dom::bindings::codegen::MouseEventBinding; use dom::bindings::utils::{ErrorResult, Fallible, DOMString}; -use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::eventtarget::EventTarget; use dom::uievent::UIEvent; use dom::window::Window; @@ -27,13 +27,13 @@ pub struct MouseEvent { } impl MouseEvent { - pub fn new(type_: &DOMString, can_bubble: bool, cancelable: bool, + pub fn new(window: @mut Window, type_: &DOMString, can_bubble: bool, cancelable: bool, view: Option<@mut WindowProxy>, detail: i32, screen_x: i32, screen_y: i32, client_x: i32, client_y: i32, ctrl_key: bool, shift_key: bool, alt_key: bool, meta_key: bool, button: u16, - _buttons: u16, related_target: Option<@mut EventTarget>) -> MouseEvent { - MouseEvent { - parent: UIEvent::new(type_, can_bubble, cancelable, view, detail), + _buttons: u16, related_target: Option<@mut EventTarget>) -> @mut MouseEvent { + let ev = @mut MouseEvent { + parent: UIEvent::new_inherited(type_, can_bubble, cancelable, view, detail), screen_x: screen_x, screen_y: screen_y, client_x: client_x, @@ -44,20 +44,21 @@ impl MouseEvent { meta_key: meta_key, button: button, related_target: related_target - } + }; + reflect_dom_object(ev, window, MouseEventBinding::Wrap) } pub fn init_wrapper(@mut self, cx: *JSContext, scope: *JSObject) { self.wrap_object_shared(cx, scope); } - pub fn Constructor(_owner: @mut Window, + pub fn Constructor(owner: @mut Window, type_: &DOMString, init: &MouseEventBinding::MouseEventInit) -> Fallible<@mut MouseEvent> { - Ok(@mut MouseEvent::new(type_, init.bubbles, init.cancelable, init.view, init.detail, - init.screenX, init.screenY, init.clientX, init.clientY, - init.ctrlKey, init.shiftKey, init.altKey, init.metaKey, - init.button, init.buttons, init.relatedTarget)) + Ok(MouseEvent::new(owner, type_, init.bubbles, init.cancelable, init.view, init.detail, + init.screenX, init.screenY, init.clientX, init.clientY, + init.ctrlKey, init.shiftKey, init.altKey, init.metaKey, + init.button, init.buttons, init.relatedTarget)) } pub fn ScreenX(&self) -> i32 { @@ -150,8 +151,8 @@ impl Reflectable for MouseEvent { self.parent.mut_reflector() } - fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { - MouseEventBinding::Wrap(cx, scope, self) + fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject { + unreachable!() } fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> { diff --git a/src/components/script/dom/uievent.rs b/src/components/script/dom/uievent.rs index d049be1f55e..17fe2dea3e8 100644 --- a/src/components/script/dom/uievent.rs +++ b/src/components/script/dom/uievent.rs @@ -4,7 +4,7 @@ use dom::bindings::codegen::UIEventBinding; use dom::bindings::utils::{DOMString, Fallible}; -use dom::bindings::utils::{Reflectable, Reflector}; +use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::node::{AbstractNode, ScriptView}; use dom::event::Event; use dom::window::Window; @@ -21,10 +21,10 @@ pub struct UIEvent { } impl UIEvent { - pub fn new(type_: &DOMString, can_bubble: bool, cancelable: bool, - view: Option<@mut WindowProxy>, detail: i32) -> UIEvent { + pub fn new_inherited(type_: &DOMString, can_bubble: bool, cancelable: bool, + view: Option<@mut WindowProxy>, detail: i32) -> UIEvent { UIEvent { - parent: Event::new(type_), + parent: Event::new_inherited(type_), can_bubble: can_bubble, cancelable: cancelable, view: view, @@ -32,15 +32,22 @@ impl UIEvent { } } + pub fn new(window: @mut Window, type_: &DOMString, can_bubble: bool, cancelable: bool, + view: Option<@mut WindowProxy>, detail: i32) -> @mut UIEvent { + reflect_dom_object(@mut UIEvent::new_inherited(type_, can_bubble, cancelable, view, detail), + window, + UIEventBinding::Wrap) + } + pub fn init_wrapper(@mut self, cx: *JSContext, scope: *JSObject) { self.wrap_object_shared(cx, scope); } - pub fn Constructor(_owner: @mut Window, + pub fn Constructor(owner: @mut Window, type_: &DOMString, init: &UIEventBinding::UIEventInit) -> Fallible<@mut UIEvent> { - Ok(@mut UIEvent::new(type_, init.parent.bubbles, init.parent.cancelable, - init.view, init.detail)) + Ok(UIEvent::new(owner, type_, init.parent.bubbles, init.parent.cancelable, + init.view, init.detail)) } pub fn GetView(&self) -> Option<@mut WindowProxy> { @@ -123,8 +130,8 @@ impl Reflectable for UIEvent { self.parent.mut_reflector() } - fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject { - UIEventBinding::Wrap(cx, scope, self) + fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject { + unreachable!() } fn GetParentObject(&self, cx: *JSContext) -> Option<@mut Reflectable> { |