diff options
-rw-r--r-- | components/gfx/color.rs | 10 | ||||
-rw-r--r-- | components/layout/layout_task.rs | 11 |
2 files changed, 17 insertions, 4 deletions
diff --git a/components/gfx/color.rs b/components/gfx/color.rs index 20be7916484..f1f589ef4b7 100644 --- a/components/gfx/color.rs +++ b/components/gfx/color.rs @@ -21,3 +21,13 @@ pub fn rgb(r: u8, g: u8, b: u8) -> AzColor { pub fn rgba(r: AzFloat, g: AzFloat, b: AzFloat, a: AzFloat) -> AzColor { AzColor { r: r, g: g, b: b, a: a } } + +#[inline] +pub fn black() -> AzColor { + AzColor { r: 0.0, g: 0.0, b: 0.0, a: 0.0 } +} + +#[inline] +pub fn white() -> AzColor { + AzColor { r: 1.0, g: 1.0, b: 1.0, a: 1.0 } +} diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs index 285e3889bf3..422ded0b3ad 100644 --- a/components/layout/layout_task.rs +++ b/components/layout/layout_task.rs @@ -664,7 +664,7 @@ impl LayoutTask { // FIXME(pcwalton): This is really ugly and can't handle overflow: scroll. Refactor // it with extreme prejudice. - let mut color = color::rgba(1.0, 1.0, 1.0, 1.0); + let mut color = color::white(); for child in node.traverse_preorder() { if child.type_id() == Some(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLHtmlElement))) || child.type_id() == Some(NodeTypeId::Element(ElementTypeId::HTMLElement(HTMLElementTypeId::HTMLBodyElement))) { @@ -676,9 +676,12 @@ impl LayoutTask { .background_color) .to_gfx_color() }; - // FIXME: Add equality operators for azure color type. - if element_bg_color.r != 0.0 || element_bg_color.g != 0.0 || - element_bg_color.b != 0.0 || element_bg_color.a != 0.0 { + + let black = color::black(); + // TODO: Use equality operators when we sync with rust-azure. + if element_bg_color.r != black.r || element_bg_color.g != black.g || + element_bg_color.b != black.b || element_bg_color.a != black.a { + color = element_bg_color; break; } |