pub enum FocusPolicy {
FocusOnPointer,
PreserveCurrentOnPointer,
}Expand description
How a focusable node responds to pointer focus.
FocusPolicy only changes pointer-driven focus assignment. Keyboard focus,
accessibility focus, and semantic activation still work for focusable nodes.
§Example
A toolbar button can run its action without taking focus from an editor:
use fission_ir::semantics::{FocusPolicy, Role};
use fission_ir::Semantics;
let semantics = Semantics {
role: Role::Button,
focusable: true,
focus_policy: FocusPolicy::PreserveCurrentOnPointer,
..Semantics::default()
};Variants§
FocusOnPointer
Pointer-down focuses this node when it is focusable. This is the normal behavior for buttons, text inputs, and other controls.
PreserveCurrentOnPointer
Pointer-down keeps the currently focused node focused while still letting this node receive pointer state and activation actions.
Trait Implementations§
Source§impl Clone for FocusPolicy
impl Clone for FocusPolicy
Source§fn clone(&self) -> FocusPolicy
fn clone(&self) -> FocusPolicy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for FocusPolicy
Source§impl Debug for FocusPolicy
impl Debug for FocusPolicy
Source§impl Default for FocusPolicy
impl Default for FocusPolicy
Source§fn default() -> FocusPolicy
fn default() -> FocusPolicy
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for FocusPolicy
impl<'de> Deserialize<'de> for FocusPolicy
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<FocusPolicy, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<FocusPolicy, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for FocusPolicy
Source§impl Hash for FocusPolicy
impl Hash for FocusPolicy
Source§impl PartialEq for FocusPolicy
impl PartialEq for FocusPolicy
Source§impl Serialize for FocusPolicy
impl Serialize for FocusPolicy
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for FocusPolicy
Auto Trait Implementations§
impl Freeze for FocusPolicy
impl RefUnwindSafe for FocusPolicy
impl Send for FocusPolicy
impl Sync for FocusPolicy
impl Unpin for FocusPolicy
impl UnsafeUnpin for FocusPolicy
impl UnwindSafe for FocusPolicy
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.