Skip to content

Commit

Permalink
servo: Merge #2022 - Get rid of match statements in Layout queries.(f…
Browse files Browse the repository at this point in the history
…ixes #2019) (from lpy:issue2019); r=jdm

see #2019

Source-Repo: https://github.com/servo/servo
Source-Revision: e3bf08ea537366a1624a082999c3548fa07d4650
  • Loading branch information
lpy committed Apr 1, 2014
1 parent cef2129 commit 7c07adb
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 40 deletions.
39 changes: 16 additions & 23 deletions servo/src/components/script/dom/element.rs
Original file line number Diff line number Diff line change
Expand Up @@ -571,19 +571,15 @@ impl Element {
let node: JS<Node> = NodeCast::from(abstract_self);
let (port, chan) = Chan::new();
let addr = node.to_trusted_node_address();
let rects =
match win.get().page().query_layout(ContentBoxesQuery(addr, chan), port) {
ContentBoxesResponse(rects) => {
rects.map(|r| {
ClientRect::new(
win,
r.origin.y,
r.origin.y + r.size.height,
r.origin.x,
r.origin.x + r.size.width)
})
},
};
let ContentBoxesResponse(rects) = win.get().page().query_layout(ContentBoxesQuery(addr, chan), port);
let rects = rects.map(|r| {
ClientRect::new(
win,
r.origin.y,
r.origin.y + r.size.height,
r.origin.x,
r.origin.x + r.size.width)
});

ClientRectList::new(win, rects)
}
Expand All @@ -595,16 +591,13 @@ impl Element {
let node: JS<Node> = NodeCast::from(abstract_self);
let (port, chan) = Chan::new();
let addr = node.to_trusted_node_address();
match win.get().page().query_layout(ContentBoxQuery(addr, chan), port) {
ContentBoxResponse(rect) => {
ClientRect::new(
win,
rect.origin.y,
rect.origin.y + rect.size.height,
rect.origin.x,
rect.origin.x + rect.size.width)
}
}
let ContentBoxResponse(rect) = win.get().page().query_layout(ContentBoxQuery(addr, chan), port);
ClientRect::new(
win,
rect.origin.y,
rect.origin.y + rect.size.height,
rect.origin.x,
rect.origin.x + rect.size.width)
}

pub fn GetInnerHTML(&self, abstract_self: &JS<Element>) -> Fallible<DOMString> {
Expand Down
14 changes: 4 additions & 10 deletions servo/src/components/script/dom/htmlimageelement.rs
Original file line number Diff line number Diff line change
Expand Up @@ -140,11 +140,8 @@ impl HTMLImageElement {
let page = window.get().page();
let (port, chan) = Chan::new();
let addr = node.to_trusted_node_address();
match page.query_layout(ContentBoxQuery(addr, chan), port) {
ContentBoxResponse(rect) => {
to_px(rect.size.width) as u32
}
}
let ContentBoxResponse(rect) = page.query_layout(ContentBoxQuery(addr, chan), port);
to_px(rect.size.width) as u32
}

pub fn SetWidth(&mut self, abstract_self: &JS<HTMLImageElement>, width: u32) -> ErrorResult {
Expand All @@ -159,11 +156,8 @@ impl HTMLImageElement {
let (port, chan) = Chan::new();
let this_node: JS<Node> = NodeCast::from(abstract_self);
let addr = this_node.to_trusted_node_address();
match page.query_layout(ContentBoxQuery(addr, chan), port) {
ContentBoxResponse(rect) => {
to_px(rect.size.height) as u32
}
}
let ContentBoxResponse(rect) = page.query_layout(ContentBoxQuery(addr, chan), port);
to_px(rect.size.height) as u32
}

pub fn SetHeight(&mut self, abstract_self: &JS<HTMLImageElement>, height: u32) -> ErrorResult {
Expand Down
11 changes: 4 additions & 7 deletions servo/src/components/script/script_task.rs
Original file line number Diff line number Diff line change
Expand Up @@ -929,13 +929,10 @@ impl ScriptTask {
fn scroll_fragment_point(&self, pipeline_id: PipelineId, page: &Page, node: JS<Element>) {
let (port, chan) = Chan::new();
let node: JS<Node> = NodeCast::from(&node);
match page.query_layout(ContentBoxQuery(node.to_trusted_node_address(), chan), port) {
ContentBoxResponse(rect) => {
let point = Point2D(to_frac_px(rect.origin.x).to_f32().unwrap(),
to_frac_px(rect.origin.y).to_f32().unwrap());
self.compositor.scroll_fragment_point(pipeline_id, point);
}
}
let ContentBoxResponse(rect) = page.query_layout(ContentBoxQuery(node.to_trusted_node_address(), chan), port);
let point = Point2D(to_frac_px(rect.origin.x).to_f32().unwrap(),
to_frac_px(rect.origin.y).to_f32().unwrap());
self.compositor.scroll_fragment_point(pipeline_id, point);
}
/// This is the main entry point for receiving and dispatching DOM events.
Expand Down

0 comments on commit 7c07adb

Please sign in to comment.