Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement viewport stuffs for window #1718 #6875

Closed
wants to merge 25 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
40ff6cf
viewport
farodin91 Jul 31, 2015
a33ad54
Merge remote-tracking branch 'upstream/master' into window
farodin91 Jul 31, 2015
a9df5f2
[WIP] Implement viewport stuffs for window #1718
farodin91 Jul 31, 2015
43d6d5e
[WIP] Implement viewport stuffs for window #1718
farodin91 Jul 31, 2015
cbaf83b
Merge branch 'window' of github.com:farodin91/servo into window
farodin91 Aug 4, 2015
bb393cd
Merging conflict
farodin91 Aug 4, 2015
4557a5d
Merging conflict 2
farodin91 Aug 4, 2015
d289878
Merge remote-tracking branch 'upstream/master' into window
farodin91 Aug 4, 2015
a5944c7
last Conflict
farodin91 Aug 4, 2015
8d2008e
Merge remote-tracking branch 'upstream/master' into window
farodin91 Aug 5, 2015
6dabb5d
review changes
farodin91 Aug 7, 2015
a800294
Merge remote-tracking branch 'upstream/master' into window
farodin91 Aug 7, 2015
225d2ee
current state
farodin91 Aug 7, 2015
cc7fc18
most changes to the last review
farodin91 Aug 9, 2015
96ae3d4
Merge remote-tracking branch 'upstream/master' into window
farodin91 Aug 9, 2015
9a80339
init support of smooth
farodin91 Aug 9, 2015
c4213b4
Merge remote-tracking branch 'upstream/master' into window
farodin91 Aug 14, 2015
c0e028e
review changes
farodin91 Aug 14, 2015
36d318b
Merging and fix review
farodin91 Aug 16, 2015
10597e2
fix tidy
farodin91 Aug 16, 2015
38f318a
Merge remote-tracking branch 'upstream/master' into window
farodin91 Aug 19, 2015
a9d703a
fixing borrow_mut
farodin91 Aug 19, 2015
3f3b176
Merge remote-tracking branch 'upstream/master' into window
farodin91 Aug 20, 2015
5274eab
Merge remote-tracking branch 'upstream/master' into window
farodin91 Aug 27, 2015
f655800
Merge remote-tracking branch 'upstream/master' into window
farodin91 Sep 1, 2015
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

most changes to the last review

  • Loading branch information
farodin91 committed Aug 9, 2015
commit cc7fc18722fbd2a474a954da9e0473549c510f40
@@ -738,7 +738,7 @@ impl<'a> WindowMethods for &'a Window {
fn DevicePixelRatio(self) -> Finite<f64> {
let dpr = self.window_size.get()

This comment has been minimized.

@dzbarsky

dzbarsky Aug 27, 2015

Member

This will return the wrong DPR if we are running with an option specifiying DPR. (See device_pixels_per_screen_px in compositor.rs: http://mxr.mozilla.org/servo/source/components/compositing/compositor.rs#1139)
Not sure how much we care though.

This comment has been minimized.

@jdm

jdm Aug 27, 2015

Member

This value comes from http://mxr.mozilla.org/servo/source/components/compositing/compositor.rs#779 which is derived from device_pixels_per_screen_px. Why is this wrong?

This comment has been minimized.

@dzbarsky

dzbarsky Aug 27, 2015

Member

Aaah I'm having trouble reading. Ignore me and carry on.

.map(|data| data.device_pixel_ratio).unwrap_or(ScaleFactor::new(1.0f32)).get();
Finite::wrap(dpr.to_f64().unwrap_or(1.0f64))
Finite::wrap(dpr as f64)
}
}

@@ -851,8 +851,13 @@ impl<'a> WindowHelpers for &'a Window {
*self.js_runtime.borrow_mut() = None;
*self.browsing_context.borrow_mut() = None;
}

/// https://drafts.csswg.org/cssom-view/#dom-window-scroll
fn scroll(self, x_: f64, y_: f64, behavior: ScrollBehavior) {
// Step 3
let xfinite = if x_.is_finite() { x_ } else { 0.0f64 };
let yfinite = if y_.is_finite() { y_ } else { 0.0f64 };

// Step 4
if self.window_size.get().is_none() {
return;
@@ -875,17 +880,17 @@ impl<'a> WindowHelpers for &'a Window {

let content_height = content_size.size.height.to_f64_px();
let content_width = content_size.size.width.to_f64_px();
(x_.max(0.0f64).min(content_width - width),
y_.max(0.0f64).min(content_height - height))
(xfinite.max(0.0f64).min(content_width - width),
yfinite.max(0.0f64).min(content_height - height))
},
None => {
(x_.max(0.0f64), y_.max(0.0f64))
(xfinite.max(0.0f64), yfinite.max(0.0f64))
}
};

// Step 10
//TODO handling ongoing smoth scrolling
if x == self.ScrollX() as f64 && y == self.ScrollX() as f64 {
if x == self.ScrollX() as f64 && y == self.ScrollY() as f64 {
return;
}

@@ -226,6 +226,7 @@ impl WindowMethods for Window {
let size = self.size().to_untyped();
let width = size.width as u32;
let height = size.height as u32;
//TODO get real window position
(Size2D::new(width, height), Point2D::zero())
}

@@ -519,10 +519,10 @@ impl WindowMethods for Window {

fn client_window(&self) -> (Size2D<u32>, Point2D<i32>) {
let (width, height) = self.window.get_outer_size().unwrap();
let size = Size2D::new(width as u32, height as u32);
let size = Size2D::new(width, height);
let (x,y) = self.window.get_position().unwrap();
let origin = Point2D::new(x as i32,y as i32);
(size,origin)
(size, origin)
}

fn set_inner_size(&self, size: Size2D<u32>) {
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.