Skip to main content

HitTestItem

Struct HitTestItem 

Source
pub struct HitTestItem {
    pub point_in_viewport: LogicalPosition,
    pub point_relative_to_item: ContentBoxLocal,
    pub is_focusable: bool,
    pub is_virtual_view_hit: Option<(DomId, LogicalPosition)>,
    pub hit_depth: u32,
}
Expand description

A single hit-test result for a regular (non-scroll) DOM node.

Fields§

§point_in_viewport: LogicalPosition

The hit point in the coordinate space of the “viewport” of the display item. The viewport is the scroll node formed by the root reference frame of the display item’s pipeline.

§point_relative_to_item: ContentBoxLocal

The hit point relative to this node’s static CONTENT-box origin, with the node’s own scroll offset NOT applied.

§Why this space, and why it is typed

The two hosts used to disagree here. WebRender reports the point relative to the hit RECT, which azul pushes before the scroll frame — i.e. BorderBoxLocal — while the CPU tester used in headless E2E subtracted padding + border and reported ContentBoxLocal. Same click, two answers, differing by exactly the node’s content inset. It stayed latent only because the default TextInput’s value <p> sets neither padding nor border; it goes live for any padded editable.

Both producers now emit ContentBoxLocal, because that is the space the consumer that cares (UnifiedLayout::hittest_cursor, via LayoutWindow::ifc_local_point) actually needs. Consumers wanting the border-box-relative point the public CallbackInfo::get_cursor_relative_to_node promises convert back with ContentBoxLocal::to_border_box_local.

§is_focusable: bool

Necessary to easily get the nearest VirtualView node

§is_virtual_view_hit: Option<(DomId, LogicalPosition)>

If this hit is a VirtualView node, stores the VirtualViews DomId + the origin of the VirtualView

§hit_depth: u32

Z-order depth from WebRender hit test (0 = frontmost/topmost in z-order). Lower values are closer to the user. This preserves the ordering from WebRender’s hit test results which returns items front-to-back.

Trait Implementations§

Source§

impl Clone for HitTestItem

Source§

fn clone(&self) -> HitTestItem

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for HitTestItem

Source§

impl Debug for HitTestItem

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for HitTestItem

Source§

impl PartialEq for HitTestItem

Source§

fn eq(&self, other: &HitTestItem) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialOrd for HitTestItem

Source§

fn partial_cmp(&self, other: &HitTestItem) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StructuralPartialEq for HitTestItem

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.