From 6bbde703c1b72a5a4ccf7ad2adb8eb8c4ae1ab27 Mon Sep 17 00:00:00 2001 From: Martin Robinson Date: Mon, 22 Sep 2014 16:32:26 -0700 Subject: [PATCH] Give root layers a scrollable policy This allows iframe layers to move properly when their parents scroll and is necessary to properly track their masking rects as their children move and to draw their backgrounds in the proper position. --- components/compositing/compositor.rs | 6 +++--- components/compositing/compositor_data.rs | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs index cec9c2b7419..316efce8c37 100644 --- a/components/compositing/compositor.rs +++ b/components/compositing/compositor.rs @@ -35,8 +35,8 @@ use layers::rendergl::RenderContext; use layers::scene::Scene; use opengles::gl2; use png; -use servo_msg::compositor_msg::{Blank, Epoch, FixedPosition, FinishedLoading, IdleRenderState}; -use servo_msg::compositor_msg::{LayerId, ReadyState, RenderingRenderState, RenderState}; +use servo_msg::compositor_msg::{Blank, Epoch, FinishedLoading, IdleRenderState, LayerId}; +use servo_msg::compositor_msg::{ReadyState, RenderingRenderState, RenderState, Scrollable}; use servo_msg::constellation_msg::{ConstellationChan, ExitMsg, LoadUrlMsg, NavigateMsg}; use servo_msg::constellation_msg::{PipelineId, ResizedWindowMsg, WindowSizeData}; use servo_msg::constellation_msg; @@ -433,7 +433,7 @@ impl IOCompositor { id: LayerId::null(), rect: Rect::zero(), background_color: azure_hl::Color::new(0., 0., 0., 0.), - scroll_policy: FixedPosition, + scroll_policy: Scrollable, }; let root_layer = CompositorData::new_layer(frame_tree.pipeline.clone(), layer_properties, diff --git a/components/compositing/compositor_data.rs b/components/compositing/compositor_data.rs index 17ce34aab12..1abb88fbdb3 100644 --- a/components/compositing/compositor_data.rs +++ b/components/compositing/compositor_data.rs @@ -74,6 +74,7 @@ impl CompositorData { pub fn update_layer(layer: Rc>, layer_properties: LayerProperties) { layer.extra_data.borrow_mut().epoch = layer_properties.epoch; + layer.extra_data.borrow_mut().scroll_policy = layer_properties.scroll_policy; layer.extra_data.borrow_mut().background_color = layer_properties.background_color; let size: TypedSize2D = Size2D::from_untyped(&layer_properties.rect.size);