mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
check method existence for hidpi_factor(), handle platforms other than macos
This commit is contained in:
parent
1aed319684
commit
789a4973f7
1 changed files with 27 additions and 15 deletions
|
@ -232,22 +232,34 @@ impl WindowMethods for Window {
|
|||
}
|
||||
|
||||
fn hidpi_factor(&self) -> ScaleFactor<ScreenPx,DevicePixel,f32> {
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue