diff --git a/servo/components/servo/Cargo.lock b/servo/components/servo/Cargo.lock index 792d32138a16..7be6dbf80463 100644 --- a/servo/components/servo/Cargo.lock +++ b/servo/components/servo/Cargo.lock @@ -335,7 +335,7 @@ dependencies = [ [[package]] name = "glutin" version = "0.0.2" -source = "git+https://github.com/servo/glutin?ref=servo#47d4e815c063f1ebff534e759e02e887006ae74f" +source = "git+https://github.com/servo/glutin?ref=servo#db27370a1cbafcbfcaeee52a44076a61b3e0573c" dependencies = [ "android_glue 0.0.1 (git+https://github.com/servo/android-rs-glue?ref=servo)", "cocoa 0.1.1 (git+https://github.com/servo/rust-cocoa)", diff --git a/servo/ports/glutin/window.rs b/servo/ports/glutin/window.rs index 5466ef14ec36..4180b6223ee7 100644 --- a/servo/ports/glutin/window.rs +++ b/servo/ports/glutin/window.rs @@ -170,7 +170,11 @@ impl WindowMethods for Window { /// Returns the size of the window in hardware pixels. fn framebuffer_size(&self) -> TypedSize2D { let (width, height) = match self.glutin { - WindowHandle::Windowed(ref window) => window.get_inner_size(), + WindowHandle::Windowed(ref window) => { + let scale_factor = window.hidpi_factor() as uint; + let (width, height) = window.get_inner_size().unwrap(); + Some((width * scale_factor, height * scale_factor)) + } WindowHandle::Headless(ref context) => Some((context.size.to_untyped().width, context.size.to_untyped().height)), }.unwrap(); @@ -230,8 +234,10 @@ impl WindowMethods for Window { } fn hidpi_factor(&self) -> ScaleFactor { - // TODO - handle hidpi - ScaleFactor(1.0) + match self.glutin { + WindowHandle::Windowed(ref window) => ScaleFactor(window.hidpi_factor()), + WindowHandle::Headless(_) => ScaleFactor(1.0), + } } fn set_page_title(&self, _: Option) {