From ad9220c932af718aa75e845b017ed00016722c44 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Tue, 15 Jul 2014 22:01:17 -0400 Subject: [PATCH] Implement support for 'enabled' property in HTMLAnchorElement --- .../script/dom/htmlanchorelement.rs | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/components/script/dom/htmlanchorelement.rs b/src/components/script/dom/htmlanchorelement.rs index 5b905b1bd44..b69536a3303 100644 --- a/src/components/script/dom/htmlanchorelement.rs +++ b/src/components/script/dom/htmlanchorelement.rs @@ -72,6 +72,32 @@ impl<'a> VirtualMethods for JSRef<'a, HTMLAnchorElement> { Some(htmlelement as &VirtualMethods) } + fn after_set_attr(&self, name: DOMString, value: DOMString) { + match self.super_type() { + Some(ref s) => s.after_set_attr(name.clone(), value.clone()), + _ => (), + } + + let node: &JSRef = NodeCast::from_ref(self); + match name.as_slice() { + "href" => node.set_enabled_state(true), + _ => () + } + } + + fn before_remove_attr(&self, name: DOMString, value: DOMString) { + match self.super_type() { + Some(ref s) => s.before_remove_attr(name.clone(), value.clone()), + _ => (), + } + + let node: &JSRef = NodeCast::from_ref(self); + match name.as_slice() { + "href" => node.set_enabled_state(false), + _ => () + } + } + fn handle_event(&self, event: &JSRef) { match self.super_type() { Some(s) => {