pub(crate) struct HoistedAbsolutelyPositionedBox {
absolutely_positioned_box: ArcRefCell<AbsolutelyPositionedBox>,
pub fragment: ArcRefCell<HoistedSharedFragment>,
pub adjusted_static_position_rect: Option<PhysicalRect<Au>>,
pub resolved_alignment: LogicalVec2<AlignFlags>,
pub original_parent_writing_mode: WritingMode,
}
Fields§
§absolutely_positioned_box: ArcRefCell<AbsolutelyPositionedBox>
§fragment: ArcRefCell<HoistedSharedFragment>
A reference to a Fragment which is shared between this HoistedAbsolutelyPositionedBox
and its placeholder AbsoluteOrFixedPositionedFragment
in the original tree position.
This will be used later in order to paint this hoisted box in tree order.
adjusted_static_position_rect: Option<PhysicalRect<Au>>
The adjusted “static-position rect” of this absolutely positioned box. This is
defined by the layout mode from which the box originates. This is the
HoistedSharedFragment::original_static_position_rect
adjusted by the offests
of ancestors between the tree position of the absolute and the
[PostioningContext
] that holds this HoistedAbsolutelyPositionedBox
.
If the value is None
, the original static position rect has not been adjusted yet.
resolved_alignment: LogicalVec2<AlignFlags>
The resolved alignment values used for aligning this absolutely positioned element if the “static-position rect” ends up being the “inset-modified containing block”. These values are dependent on the layout mode (currently only interesting for flexbox).
original_parent_writing_mode: WritingMode
This is the WritingMode
of the original parent of the element that created this
hoisted absolutely-positioned fragment. This helps to interpret the offset for
static positioning. If the writing mode is right-to-left or bottom-to-top, the static
offset needs to be adjusted by the absolutely positioned element’s inline size.
Implementations§
Source§impl HoistedAbsolutelyPositionedBox
impl HoistedAbsolutelyPositionedBox
fn position(&self) -> Position
pub(crate) fn layout_many( layout_context: &LayoutContext<'_>, boxes: Vec<Self>, fragments: &mut Vec<Fragment>, for_nearest_containing_block_for_all_descendants: &mut Vec<HoistedAbsolutelyPositionedBox>, containing_block: &DefiniteContainingBlock<'_>, containing_block_padding: PhysicalSides<Au>, )
pub(crate) fn layout( &mut self, layout_context: &LayoutContext<'_>, hoisted_absolutes_from_children: &mut Vec<HoistedAbsolutelyPositionedBox>, containing_block: &DefiniteContainingBlock<'_>, containing_block_padding: PhysicalSides<Au>, ) -> Fragment
fn static_position_rect(&self) -> PhysicalRect<Au>
fn adjust_static_position_with_offset(&mut self, offset: &PhysicalVec<Au>)
Trait Implementations§
Source§impl Clone for HoistedAbsolutelyPositionedBox
impl Clone for HoistedAbsolutelyPositionedBox
Source§fn clone(&self) -> HoistedAbsolutelyPositionedBox
fn clone(&self) -> HoistedAbsolutelyPositionedBox
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl MallocSizeOf for HoistedAbsolutelyPositionedBox
impl MallocSizeOf for HoistedAbsolutelyPositionedBox
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Auto Trait Implementations§
impl Freeze for HoistedAbsolutelyPositionedBox
impl !RefUnwindSafe for HoistedAbsolutelyPositionedBox
impl Send for HoistedAbsolutelyPositionedBox
impl Sync for HoistedAbsolutelyPositionedBox
impl Unpin for HoistedAbsolutelyPositionedBox
impl !UnwindSafe for HoistedAbsolutelyPositionedBox
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more