| ... | @@ -15,8 +15,9 @@ impl Scroll { | ... | @@ -15,8 +15,9 @@ impl Scroll { |
| 15 | max[axis] = max[axis].max(rect[axis + 2]); | 15 | max[axis] = max[axis].max(rect[axis + 2]); |
| 16 | } | 16 | } |
| 17 | } | 17 | } |
| | 18 | // OneNote stops at the page origin or the object furthest above or left of it. |
| 18 | for axis in 0..2 { | 19 | for axis in 0..2 { |
| 19 | min[axis] = (min[axis] - 36.0) * viewport.scale; | 20 | min[axis] *= viewport.scale; |
| 20 | max[axis] = | 21 | max[axis] = |
| 21 | ((max[axis] + 36.0) * viewport.scale - viewport.size[axis] as f32).max(min[axis]); | 22 | ((max[axis] + 36.0) * viewport.scale - viewport.size[axis] as f32).max(min[axis]); |
| 22 | } | 23 | } |
| ... | @@ -100,7 +101,7 @@ mod tests { | ... | @@ -100,7 +101,7 @@ mod tests { |
| 100 | }; | 101 | }; |
| 101 | let scroll = Scroll::new(viewport, [[-80.0, -20.0, 1000.0, 1200.0]].into_iter()); | 102 | let scroll = Scroll::new(viewport, [[-80.0, -20.0, 1000.0, 1200.0]].into_iter()); |
| 102 | scroll.clamp(&mut viewport); | 103 | scroll.clamp(&mut viewport); |
| 103 | assert_eq!(viewport.origin, [232.0, 112.0]); | 104 | assert_eq!(viewport.origin, [160.0, 40.0]); |
| 104 | viewport.origin = [-9999.0; 2]; | 105 | viewport.origin = [-9999.0; 2]; |
| 105 | scroll.clamp(&mut viewport); | 106 | scroll.clamp(&mut viewport); |
| 106 | assert_eq!(viewport.origin, [-1272.0, -1872.0]); | 107 | assert_eq!(viewport.origin, [-1272.0, -1872.0]); |