Skip to main content

TextInputManager

Struct TextInputManager 

Source
pub struct TextInputManager {
    pub pending_changeset: Option<PendingTextEdit>,
    pub input_source: Option<TextInputSource>,
}
Expand description

Text Input Manager

Centralizes all text editing logic. This is the single source of truth for text input state.

Fields§

§pending_changeset: Option<PendingTextEdit>

The pending text changeset that hasn’t been applied yet. This is set during the “record” phase and cleared after the “apply” phase.

§input_source: Option<TextInputSource>

Source of the current text input

Implementations§

Source§

impl TextInputManager

Source

pub fn new() -> Self

Create a new TextInputManager

Source

pub fn record_input( &mut self, node: DomNodeId, inserted_text: String, old_text: String, source: TextInputSource, ) -> DomNodeId

Record a text input event (Phase 1)

This ONLY records what text was inserted. It does NOT apply the changes yet. The changes are applied later in apply_changeset() if preventDefault is not set.

§Arguments
  • node - The DOM node being edited
  • inserted_text - The text being inserted
  • old_text - The current text before the edit
  • source - Where the input came from (keyboard, IME, A11y, etc.)

Returns the affected node for event generation.

Source

pub fn get_pending_changeset(&self) -> Option<&PendingTextEdit>

Get the pending changeset (if any)

Source

pub fn clear_changeset(&mut self)

Clear the pending changeset

This is called after applying the changeset or if preventDefault was set.

Source

pub fn has_pending_changeset(&self) -> bool

Check if there’s a pending changeset that needs to be applied

Trait Implementations§

Source§

impl Default for TextInputManager

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl EventProvider for TextInputManager

Source§

fn get_pending_events(&self, timestamp: Instant) -> Vec<SyntheticEvent>

Get pending text input events.

If there’s a pending changeset, returns an Input event for the affected node. The event data includes the old text and inserted text so callbacks can query the changeset.

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<G1, G2> Within<G2> for G1
where G2: Contains<G1>,

Source§

fn is_within(&self, b: &G2) -> bool