diff --git a/src/components/gfx/platform/android/font.rs b/src/components/gfx/platform/android/font.rs index f8f78eb1100..c350f8b820c 100644 --- a/src/components/gfx/platform/android/font.rs +++ b/src/components/gfx/platform/android/font.rs @@ -244,7 +244,7 @@ impl FontHandleMethods for FontHandle { } } - return FontMetrics { + let metrics = FontMetrics { underline_size: underline_size, underline_offset: underline_offset, strikeout_size: strikeout_size, @@ -255,7 +255,10 @@ impl FontHandleMethods for FontHandle { ascent: ascent, descent: -descent, // linux font's seem to use the opposite sign from mac max_advance: max_advance - } + }; + + debug!("Font metrics (@{:f} pt): {:?}", geometry::to_pt(em_size), metrics); + return metrics; } fn get_table_for_tag(&self, _: FontTableTag) -> Option { diff --git a/src/components/gfx/platform/linux/font.rs b/src/components/gfx/platform/linux/font.rs index 04b288ee8c9..ca01f2ee949 100644 --- a/src/components/gfx/platform/linux/font.rs +++ b/src/components/gfx/platform/linux/font.rs @@ -243,7 +243,7 @@ impl FontHandleMethods for FontHandle { } } - return FontMetrics { + let metrics = FontMetrics { underline_size: underline_size, underline_offset: underline_offset, strikeout_size: strikeout_size, @@ -254,7 +254,10 @@ impl FontHandleMethods for FontHandle { ascent: ascent, descent: -descent, // linux font's seem to use the opposite sign from mac max_advance: max_advance - } + }; + + debug!("Font metrics (@{:f} pt): {:?}", geometry::to_pt(em_size), metrics); + return metrics; } fn get_table_for_tag(&self, _: FontTableTag) -> Option { diff --git a/src/components/util/geometry.rs b/src/components/util/geometry.rs index 5b7aae9f749..4b2cb0c2e43 100644 --- a/src/components/util/geometry.rs +++ b/src/components/util/geometry.rs @@ -9,6 +9,9 @@ use geom::size::Size2D; use std::num::{NumCast, One, Zero}; use std::fmt; +// An Au is an "App Unit" and represents 1/60th of a CSS pixel. It was +// originally proposed in 2002 as a standard unit of measure in Gecko. +// See https://bugzilla.mozilla.org/show_bug.cgi?id=177805 for more info. pub struct Au(i32); // We don't use #[deriving] here for inlining. @@ -225,3 +228,8 @@ pub fn from_pt(pt: f64) -> Au { from_px((pt / 72f64 * 96f64) as int) } +// assumes 72 points per inch, and 96 px per inch +pub fn to_pt(au: Au) -> f64 { + (*au as f64) / 60f64 * 72f64 / 96f64 +} +