From 2215e2ca801359ad1bead7e9d986e610a25a94b9 Mon Sep 17 00:00:00 2001 From: Tetsuharu OHZEKI Date: Wed, 28 May 2014 05:56:41 +0900 Subject: [PATCH] Use Cell/RefCell for interior mutability of MouseEvent. --- src/components/script/dom/mouseevent.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/script/dom/mouseevent.rs b/src/components/script/dom/mouseevent.rs index 994a18d7be6..55326b8afcd 100644 --- a/src/components/script/dom/mouseevent.rs +++ b/src/components/script/dom/mouseevent.rs @@ -12,6 +12,7 @@ use dom::eventtarget::EventTarget; use dom::uievent::{UIEvent, UIEventMethods}; use dom::window::Window; use servo_util::str::DOMString; +use std::cell::Cell; #[deriving(Encodable)] pub struct MouseEvent { @@ -25,7 +26,7 @@ pub struct MouseEvent { pub alt_key: bool, pub meta_key: bool, pub button: u16, - pub related_target: Option> + pub related_target: Cell>> } impl MouseEventDerived for Event { @@ -47,7 +48,7 @@ impl MouseEvent { alt_key: false, meta_key: false, button: 0, - related_target: None + related_target: Cell::new(None) } } @@ -168,7 +169,7 @@ impl<'a> MouseEventMethods for JSRef<'a, MouseEvent> { } fn GetRelatedTarget(&self) -> Option> { - self.related_target.clone().map(|target| Temporary::new(target)) + self.related_target.get().clone().map(|target| Temporary::new(target)) } fn GetModifierState(&self, _keyArg: DOMString) -> bool {