mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Implement ScrollTop and ScrollLeft getters:
Add new compositor message to get scroll_offset; Add new layout query for computed value of overflow-x/y; Implement layer_id method for ThreadSafeLayoutNode; Add new layout query for layer_id; Implement script interface for getting scrollTop and scrollLeft, as well as relavant helper functions.
This commit is contained in:
parent
f73c6143d5
commit
fefdaf76de
12 changed files with 243 additions and 9 deletions
|
@ -34,6 +34,7 @@ use core::nonzero::NonZero;
|
|||
use data::{LayoutDataFlags, PrivateLayoutData};
|
||||
use gfx::display_list::OpaqueNode;
|
||||
use gfx::text::glyph::CharIndex;
|
||||
use gfx_traits::{LayerId, LayerType};
|
||||
use incremental::RestyleDamage;
|
||||
use msg::constellation_msg::PipelineId;
|
||||
use opaque_node::OpaqueNodeMethods;
|
||||
|
@ -851,6 +852,21 @@ pub trait ThreadSafeLayoutNode : Clone + Copy + Sized + PartialEq {
|
|||
fn iframe_pipeline_id(&self) -> PipelineId;
|
||||
|
||||
fn get_colspan(&self) -> u32;
|
||||
|
||||
fn layer_id(&self) -> LayerId {
|
||||
let layer_type = match self.get_pseudo_element_type() {
|
||||
PseudoElementType::Normal => LayerType::FragmentBody,
|
||||
PseudoElementType::Before(_) => LayerType::BeforePseudoContent,
|
||||
PseudoElementType::After(_) => LayerType::AfterPseudoContent,
|
||||
PseudoElementType::DetailsSummary(_) => LayerType::FragmentBody,
|
||||
PseudoElementType::DetailsContent(_) => LayerType::FragmentBody,
|
||||
};
|
||||
LayerId::new_of_type(layer_type, self.opaque().id() as usize)
|
||||
}
|
||||
|
||||
fn layer_id_for_overflow_scroll(&self) -> LayerId {
|
||||
LayerId::new_of_type(LayerType::OverflowScroll, self.opaque().id() as usize)
|
||||
}
|
||||
}
|
||||
|
||||
// This trait is only public so that it can be implemented by the gecko wrapper.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue