Skip to content

Commit

Permalink
Made Page.window_size and Page.next_subpage_id Traceable, added trait…
Browse files Browse the repository at this point in the history
… Encodable for WindowSizeData, ViewportPx, PagePx, and DevicePixel
  • Loading branch information
eshyong committed Jul 7, 2014
1 parent e62637f commit f085655
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
2 changes: 2 additions & 0 deletions src/components/msg/constellation_msg.rs
Expand Up @@ -8,6 +8,7 @@
use geom::rect::Rect;
use geom::size::TypedSize2D;
use geom::scale_factor::ScaleFactor;
use serialize::Encodable;
use servo_util::geometry::{DevicePixel, PagePx, ViewportPx};
use std::comm::{channel, Sender, Receiver};
use url::Url;
Expand Down Expand Up @@ -35,6 +36,7 @@ pub struct Failure {
pub subpage_id: Option<SubpageId>,
}

#[deriving(Encodable)]
pub struct WindowSizeData {
/// The size of the initial layout viewport, before parsing an
/// http://www.w3.org/TR/css-device-adapt/#initial-viewport
Expand Down
8 changes: 4 additions & 4 deletions src/components/script/page.rs
Expand Up @@ -60,7 +60,7 @@ pub struct Page {
damage: Traceable<RefCell<Option<DocumentDamage>>>,

/// The current size of the window, in pixels.
pub window_size: Untraceable<Cell<WindowSizeData>>,
pub window_size: Traceable<Cell<WindowSizeData>>,

js_info: Traceable<RefCell<Option<JSPageInfo>>>,

Expand All @@ -70,7 +70,7 @@ pub struct Page {
/// when reloading.
url: Untraceable<RefCell<Option<(Url, bool)>>>,

next_subpage_id: Untraceable<Cell<SubpageId>>,
next_subpage_id: Traceable<Cell<SubpageId>>,

/// Pending resize event, if any.
pub resize_event: Untraceable<Cell<Option<WindowSizeData>>>,
Expand Down Expand Up @@ -132,10 +132,10 @@ impl Page {
layout_chan: Untraceable::new(layout_chan),
layout_join_port: Untraceable::new(RefCell::new(None)),
damage: Traceable::new(RefCell::new(None)),
window_size: Untraceable::new(Cell::new(window_size)),
window_size: Traceable::new(Cell::new(window_size)),
js_info: Traceable::new(RefCell::new(Some(js_info))),
url: Untraceable::new(RefCell::new(None)),
next_subpage_id: Untraceable::new(Cell::new(SubpageId(0))),
next_subpage_id: Traceable::new(Cell::new(SubpageId(0))),
resize_event: Untraceable::new(Cell::new(None)),
fragment_node: Cell::new(None),
last_reflow_id: Traceable::new(Cell::new(0)),
Expand Down
3 changes: 3 additions & 0 deletions src/components/util/geometry.rs
Expand Up @@ -16,6 +16,7 @@ use std::fmt;
/// One hardware pixel.
///
/// This unit corresponds to the smallest addressable element of the display hardware.
#[deriving(Encodable)]
pub enum DevicePixel {}

/// A normalized "pixel" at the default resolution for the display.
Expand All @@ -42,6 +43,7 @@ pub enum ScreenPx {}
///
/// At the default zoom level of 100%, one PagePx is equal to one ScreenPx. However, if the
/// document is zoomed in or out then this scale may be larger or smaller.
#[deriving(Encodable)]
pub enum ViewportPx {}

/// One CSS "px" in the root coordinate system for the content document.
Expand All @@ -50,6 +52,7 @@ pub enum ViewportPx {}
/// This is the mobile-style "pinch zoom" that enlarges content without reflowing it. When the
/// viewport zoom is not equal to 1.0, then the layout viewport is no longer the same physical size
/// as the viewable area.
#[deriving(Encodable)]
pub enum PagePx {}

// In summary, the hierarchy of pixel units and the factors to convert from one to the next:
Expand Down

0 comments on commit f085655

Please sign in to comment.