diff options
author | Josh Matthews <josh@joshmatthews.net> | 2014-09-30 16:39:31 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-10-01 17:06:23 +0200 |
commit | 54fcab61d61533ce4de5436c8721aa7548f8509d (patch) | |
tree | 64572dff214e699be5550ab79e8a55c648ea0d35 /components/script/dom/mouseevent.rs | |
parent | f73e5088219cd6deeea0d4f0612cad750fc532a9 (diff) | |
download | servo-54fcab61d61533ce4de5436c8721aa7548f8509d.tar.gz servo-54fcab61d61533ce4de5436c8721aa7548f8509d.zip |
Implement MutNullableJS for mutable, nullable member pointers to DOM objects.
Diffstat (limited to 'components/script/dom/mouseevent.rs')
-rw-r--r-- | components/script/dom/mouseevent.rs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs index 9efc5a97d3e..2332417da18 100644 --- a/components/script/dom/mouseevent.rs +++ b/components/script/dom/mouseevent.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::InheritTypes::{UIEventCast, MouseEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; use dom::bindings::global; -use dom::bindings::js::{JS, JSRef, RootedReference, Temporary, OptionalSettable}; +use dom::bindings::js::{MutNullableJS, JSRef, RootedReference, Temporary, OptionalSettable}; use dom::bindings::trace::Traceable; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::event::{Event, MouseEventTypeId}; @@ -18,6 +18,7 @@ use dom::uievent::UIEvent; use dom::window::Window; use servo_util::str::DOMString; use std::cell::Cell; +use std::default::Default; #[jstraceable] #[must_root] @@ -32,7 +33,7 @@ pub struct MouseEvent { pub alt_key: Traceable<Cell<bool>>, pub meta_key: Traceable<Cell<bool>>, pub button: Traceable<Cell<i16>>, - pub related_target: Cell<Option<JS<EventTarget>>> + pub related_target: MutNullableJS<EventTarget> } impl MouseEventDerived for Event { @@ -54,7 +55,7 @@ impl MouseEvent { alt_key: Traceable::new(Cell::new(false)), meta_key: Traceable::new(Cell::new(false)), button: Traceable::new(Cell::new(0)), - related_target: Cell::new(None) + related_target: Default::default(), } } @@ -142,7 +143,7 @@ impl<'a> MouseEventMethods for JSRef<'a, MouseEvent> { } fn GetRelatedTarget(self) -> Option<Temporary<EventTarget>> { - self.related_target.get().clone().map(|target| Temporary::new(target)) + self.related_target.get() } fn InitMouseEvent(self, |