From 3b36f4c58e623564dd24fb510ebe4322dfd404e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= Date: Mon, 16 Jan 2017 10:42:10 +0100 Subject: [PATCH] Bug 1331213: Implement the resolution override. r=heycam MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MozReview-Commit-ID: LFGam2hDoh7 Signed-off-by: Emilio Cobos Álvarez --- components/style/gecko/media_queries.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/components/style/gecko/media_queries.rs b/components/style/gecko/media_queries.rs index 3dcc53dc39d..b2c57195b90 100644 --- a/components/style/gecko/media_queries.rs +++ b/components/style/gecko/media_queries.rs @@ -535,11 +535,16 @@ impl Expression { (one_num * other_den).partial_cmp(&(other_num * one_den)).unwrap() } (&Resolution(ref one), &Resolution(ref other)) => { - // FIXME(emilio): The pres context may override the DPPX of the - // `other` resolution, we need to look at that here, but I'm - // skipping that for now (we should check if bindgen can - // generate nsPresContext correctly now). - one.to_dpi().partial_cmp(&other.to_dpi()).unwrap() + let actual_dpi = unsafe { + if (*device.pres_context).mOverrideDPPX > 0.0 { + self::Resolution::Dppx((*device.pres_context).mOverrideDPPX) + .to_dpi() + } else { + other.to_dpi() + } + }; + + one.to_dpi().partial_cmp(&actual_dpi).unwrap() } (&Ident(ref one), &Ident(ref other)) => { debug_assert!(self.feature.mRangeType != nsMediaFeature_RangeType::eMinMaxAllowed);