mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35:33 +01:00
get it so that content actually has height and displays
This commit is contained in:
parent
3c5b1928a0
commit
78a5cd763c
3 changed files with 26 additions and 4 deletions
|
@ -56,9 +56,10 @@ fn linked_box(n: node) -> @box {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn linked_subtree(p: node) -> @box {
|
fn linked_subtree(p: node) -> @box {
|
||||||
|
#debug["linked_subtree root=%?", p.rd() { |r| r.kind }];
|
||||||
let p_box = linked_box(p);
|
let p_box = linked_box(p);
|
||||||
for ntree.each_child(p) { |c|
|
for ntree.each_child(p) { |c|
|
||||||
let c_box = linked_box(c);
|
let c_box = linked_subtree(c);
|
||||||
btree.add_child(p_box, c_box);
|
btree.add_child(p_box, c_box);
|
||||||
}
|
}
|
||||||
ret p_box;
|
ret p_box;
|
||||||
|
@ -74,6 +75,7 @@ fn reflow_block(root: @box, available_width: au) {
|
||||||
// - and recursively computes the bounds for each child
|
// - and recursively computes the bounds for each child
|
||||||
|
|
||||||
let k = root.node.rd() { |r| r.kind };
|
let k = root.node.rd() { |r| r.kind };
|
||||||
|
#debug["reflow_block root=%?", k];
|
||||||
alt k {
|
alt k {
|
||||||
nk_img(size) {
|
nk_img(size) {
|
||||||
root.bounds.size = size;
|
root.bounds.size = size;
|
||||||
|
|
|
@ -5,6 +5,7 @@ import dom::base::{methods, rd_tree_ops, wr_tree_ops};
|
||||||
import dom = dom::base;
|
import dom = dom::base;
|
||||||
import parser = parser::html;
|
import parser = parser::html;
|
||||||
import html::token;
|
import html::token;
|
||||||
|
import gfx::geom;
|
||||||
|
|
||||||
fn build_dom(scope: dom::node_scope,
|
fn build_dom(scope: dom::node_scope,
|
||||||
stream: port<token>) -> dom::node {
|
stream: port<token>) -> dom::node {
|
||||||
|
@ -15,11 +16,24 @@ fn build_dom(scope: dom::node_scope,
|
||||||
#debug["token=%?", token];
|
#debug["token=%?", token];
|
||||||
alt token {
|
alt token {
|
||||||
parser::to_eof { break; }
|
parser::to_eof { break; }
|
||||||
parser::to_start_tag(_) {
|
parser::to_start_tag("div") {
|
||||||
let new_node = scope.new_node(dom::nk_div);
|
#debug["DIV"];
|
||||||
|
let new_node = scope.new_node(
|
||||||
|
dom::nk_div);
|
||||||
scope.add_child(cur, new_node);
|
scope.add_child(cur, new_node);
|
||||||
cur = new_node;
|
cur = new_node;
|
||||||
}
|
}
|
||||||
|
parser::to_start_tag("img") {
|
||||||
|
#debug["IMG"];
|
||||||
|
let new_node = scope.new_node(
|
||||||
|
dom::nk_img({mut width: geom::int_to_au(100),
|
||||||
|
mut height: geom::int_to_au(100)}));
|
||||||
|
scope.add_child(cur, new_node);
|
||||||
|
cur = new_node;
|
||||||
|
}
|
||||||
|
parser::to_start_tag(t) {
|
||||||
|
fail ("Unrecognized tag: " + t);
|
||||||
|
}
|
||||||
parser::to_end_tag(_) {
|
parser::to_end_tag(_) {
|
||||||
// TODO: Assert that the closing tag has the right name.
|
// TODO: Assert that the closing tag has the right name.
|
||||||
// TODO: Fail more gracefully (i.e. according to the HTML5
|
// TODO: Fail more gracefully (i.e. according to the HTML5
|
||||||
|
|
|
@ -1 +1,7 @@
|
||||||
<div><div><div></div></div></div>
|
<div>
|
||||||
|
<img></img>
|
||||||
|
<div>
|
||||||
|
<img></img>
|
||||||
|
<div><img></img></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue