mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Implement MutNullableJS for mutable, nullable member pointers to DOM objects.
This commit is contained in:
parent
f73e508821
commit
54fcab61d6
11 changed files with 171 additions and 109 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue