From 789a4973f7de5fa0f0df64138d380a6f1cad4104 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 18 May 2015 15:56:48 -0400 Subject: [PATCH] check method existence for hidpi_factor(), handle platforms other than macos --- ports/cef/window.rs | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/ports/cef/window.rs b/ports/cef/window.rs index 8662627fd5c..827e067c7fa 100644 --- a/ports/cef/window.rs +++ b/ports/cef/window.rs @@ -232,22 +232,34 @@ impl WindowMethods for Window { } fn hidpi_factor(&self) -> ScaleFactor { - let browser = self.cef_browser.borrow(); - match *browser { - None => ScaleFactor::new(1.0), - Some(ref browser) => { - let mut view_rect = cef_rect_t::zero(); - browser.get_host() - .get_client() - .get_render_handler() - .get_view_rect((*browser).clone(), &mut view_rect); - let mut backing_rect = cef_rect_t::zero(); - browser.get_host() - .get_client() - .get_render_handler() - .get_backing_rect((*browser).clone(), &mut backing_rect); - ScaleFactor::new(backing_rect.width as f32 / view_rect.width as f32) + if cfg!(target_os="macos") { + let browser = self.cef_browser.borrow(); + match *browser { + None => ScaleFactor::new(1.0), + Some(ref browser) => { + let mut view_rect = cef_rect_t::zero(); + if check_ptr_exist!(browser.get_host().get_client(), get_render_handler) && + check_ptr_exist!(browser.get_host().get_client().get_render_handler(), get_view_rect) { + browser.get_host() + .get_client() + .get_render_handler() + .get_view_rect((*browser).clone(), &mut view_rect); + } + let mut backing_rect = cef_rect_t::zero(); + if check_ptr_exist!(browser.get_host().get_client(), get_render_handler) && + check_ptr_exist!(browser.get_host().get_client().get_render_handler(), get_backing_rect) { + browser.get_host() + .get_client() + .get_render_handler() + .get_backing_rect((*browser).clone(), &mut backing_rect); + } + ScaleFactor::new(backing_rect.width as f32 / view_rect.width as f32) + } } + } else { + // FIXME(zmike) + // need to figure out a method for actually getting the scale factor instead of this nonsense + ScaleFactor::new(1.0 as f32) } }