mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Introduce CSSPixel as a replacement for ViewportPx and PagePx.
This commit is contained in:
parent
56a99577b3
commit
30ff2f8f0d
16 changed files with 81 additions and 92 deletions
|
@ -3252,7 +3252,7 @@ impl DocumentMethods for Document {
|
|||
let y = *y as f32;
|
||||
let point = &Point2D::new(x, y);
|
||||
let window = window_from_node(self);
|
||||
let viewport = window.window_size().unwrap().visible_viewport;
|
||||
let viewport = window.window_size().unwrap().initial_viewport;
|
||||
|
||||
if self.browsing_context().is_none() {
|
||||
return None;
|
||||
|
@ -3285,7 +3285,7 @@ impl DocumentMethods for Document {
|
|||
let y = *y as f32;
|
||||
let point = &Point2D::new(x, y);
|
||||
let window = window_from_node(self);
|
||||
let viewport = window.window_size().unwrap().visible_viewport;
|
||||
let viewport = window.window_size().unwrap().initial_viewport;
|
||||
|
||||
if self.browsing_context().is_none() {
|
||||
return vec!();
|
||||
|
|
|
@ -18,12 +18,11 @@ use dom::document::Document;
|
|||
use dom::event::Event;
|
||||
use dom::eventtarget::EventTarget;
|
||||
use dom::mediaquerylistevent::MediaQueryListEvent;
|
||||
use euclid::scale_factor::ScaleFactor;
|
||||
use js::jsapi::JSTracer;
|
||||
use std::cell::Cell;
|
||||
use std::rc::Rc;
|
||||
use style::media_queries::{Device, MediaList, MediaType};
|
||||
use style_traits::{PagePx, ToCss, ViewportPx};
|
||||
use style_traits::ToCss;
|
||||
|
||||
pub enum MediaQueryListMatchState {
|
||||
Same(bool),
|
||||
|
@ -75,12 +74,8 @@ impl MediaQueryList {
|
|||
|
||||
pub fn evaluate(&self) -> bool {
|
||||
if let Some(window_size) = self.document.window().window_size() {
|
||||
let viewport_size = window_size.visible_viewport;
|
||||
// TODO: support real ViewportPx, including zoom level
|
||||
// This information seems not to be tracked currently, so we assume
|
||||
// ViewportPx == PagePx
|
||||
let page_to_viewport: ScaleFactor<f32, PagePx, ViewportPx> = ScaleFactor::new(1.0);
|
||||
let device = Device::new(MediaType::Screen, viewport_size * page_to_viewport);
|
||||
let viewport_size = window_size.initial_viewport;
|
||||
let device = Device::new(MediaType::Screen, viewport_size);
|
||||
self.media_query_list.evaluate(&device)
|
||||
} else {
|
||||
false
|
||||
|
|
|
@ -774,7 +774,7 @@ impl WindowMethods for Window {
|
|||
//TODO Include Scrollbar
|
||||
fn InnerHeight(&self) -> i32 {
|
||||
self.window_size.get()
|
||||
.and_then(|e| e.visible_viewport.height.to_i32())
|
||||
.and_then(|e| e.initial_viewport.height.to_i32())
|
||||
.unwrap_or(0)
|
||||
}
|
||||
|
||||
|
@ -782,7 +782,7 @@ impl WindowMethods for Window {
|
|||
//TODO Include Scrollbar
|
||||
fn InnerWidth(&self) -> i32 {
|
||||
self.window_size.get()
|
||||
.and_then(|e| e.visible_viewport.width.to_i32())
|
||||
.and_then(|e| e.initial_viewport.width.to_i32())
|
||||
.unwrap_or(0)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue