pub struct FocusManager;Expand description
Owner-scoped focus manager for traversal and forced clear operations.
Use the focus manager to trigger application-level traversal without storing a specific scope or requester.
Implementations§
Source§impl FocusManager
impl FocusManager
Sourcepub fn save_focus(self) -> Option<FocusRestorationTarget>
pub fn save_focus(self) -> Option<FocusRestorationTarget>
Saves the current target for restoring focus after temporary UI closes.
Saving does not move focus or keep the target alive. Restore only while the temporary UI still owns focus, so later user navigation is preserved.
Sourcepub fn focus_change_direction(self) -> Option<FocusDirection>
pub fn focus_change_direction(self) -> Option<FocusDirection>
Returns the traversal direction responsible for the focus callback
currently running. Explicit focus requests, restoration, and calls
outside a focus callback return None.
Sourcepub fn defer_keyboard_until_layout(self)
pub fn defer_keyboard_until_layout(self)
Defers queued keys until the next layout and its focus updates finish.
Use when opening or closing focusable content so subsequent keys reach the resulting focus target.
Sourcepub fn clear_focus(self, force: bool)
pub fn clear_focus(self, force: bool)
Clears the current focus. Set force to true to break captured focus.
Sourcepub fn move_focus(self, direction: FocusDirection) -> bool
pub fn move_focus(self, direction: FocusDirection) -> bool
Moves focus in the requested direction.
Sourcepub fn request_move_focus(self, direction: FocusDirection) -> bool
pub fn request_move_focus(self, direction: FocusDirection) -> bool
Queues traversal after the next layout, revealing lazy content as needed.
Later requests replace an earlier queued direction. Returns false when
the window is unfocused or focus is captured. Following keyboard input
waits for the requested traversal and its layout updates.
Explicit focus requests, focus capture, and window blur cancel it.
Trait Implementations§
Source§impl Clone for FocusManager
impl Clone for FocusManager
Source§fn clone(&self) -> FocusManager
fn clone(&self) -> FocusManager
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for FocusManager
Source§impl Debug for FocusManager
impl Debug for FocusManager
Source§impl Default for FocusManager
impl Default for FocusManager
Source§fn default() -> FocusManager
fn default() -> FocusManager
Auto Trait Implementations§
impl Freeze for FocusManager
impl RefUnwindSafe for FocusManager
impl Send for FocusManager
impl Sync for FocusManager
impl Unpin for FocusManager
impl UnsafeUnpin for FocusManager
impl UnwindSafe for FocusManager
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.