aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/element.rs
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-07-27 20:45:05 -0600
committerbors-servo <metajack+bors@gmail.com>2015-07-27 20:45:05 -0600
commite0bd80f80715bdbdf30de1de9c79a99a41cfd99e (patch)
tree9a7c7bb8825e07b755ad7dd7aa36863db56951a2 /components/script/dom/element.rs
parent2672f2bbe46fd833c6a84b70edaa99dcaf092b5c (diff)
parent126938a963e79e5dc50ad748bb590df3c9bfdd35 (diff)
downloadservo-e0bd80f80715bdbdf30de1de9c79a99a41cfd99e.tar.gz
servo-e0bd80f80715bdbdf30de1de9c79a99a41cfd99e.zip
Auto merge of #6662 - tschneidereit:client-geometry, r=glennw,pcwatson
Implement Element.client{Top,Left,Width,Height} This isn't done, but contains a working implementation of at least `clientTop`. Feedback would be much appreciated: it's probably far from ideal. Implementing `clientLeft` is straight-forward, I think, but `clientWidth` and `clientHeight` require accessing the `border_box` - and I don't know how that works, yet. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6662) <!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/element.rs')
-rw-r--r--components/script/dom/element.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index dd6afd3061b..10b7950f82e 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -1317,6 +1317,26 @@ impl<'a> ElementMethods for &'a Element {
rect.origin.x + rect.size.width)
}
+ fn ClientTop(self) -> i32 {
+ let node = NodeCast::from_ref(self);
+ node.get_client_rect().origin.y
+ }
+
+ fn ClientLeft(self) -> i32 {
+ let node = NodeCast::from_ref(self);
+ node.get_client_rect().origin.x
+ }
+
+ fn ClientWidth(self) -> i32 {
+ let node = NodeCast::from_ref(self);
+ node.get_client_rect().size.width
+ }
+
+ fn ClientHeight(self) -> i32 {
+ let node = NodeCast::from_ref(self);
+ node.get_client_rect().size.height
+ }
+
// https://dvcs.w3.org/hg/innerhtml/raw-file/tip/index.html#widl-Element-innerHTML
fn GetInnerHTML(self) -> Fallible<DOMString> {
//XXX TODO: XML case