#[non_exhaustive]pub struct FieldFocus {
pub is_focused: bool,
pub is_focus_within: bool,
pub is_focus_visible: bool,
}Expand description
[data-focus-visible] — whether a focus ring should be showing.
A browser rings a control focused by the keyboard and not one focused by a
click; React Aria says the same thing with data-focus-visible, and 41 of
v3’s stylesheets style that state. gpui reports that an element has focus
but not how the focus arrived, so the app root records which kind of input
was last seen and every ring in the tree reads it.
The shared focus portion of v3 field render props.
Fields draw their focus chrome from these three values, so content closures receive them rather than re-deriving focus. Components with additional render props embed the same values in their component-specific state.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.is_focused: boolisFocused — this control holds the keyboard.
is_focus_within: boolisFocusWithin — it or something inside it does.
is_focus_visible: boolisFocusVisible — focused, and the last input was a key.
Trait Implementations§
Source§impl Clone for FieldFocus
impl Clone for FieldFocus
impl Copy for FieldFocus
Source§impl Debug for FieldFocus
impl Debug for FieldFocus
Source§impl Default for FieldFocus
impl Default for FieldFocus
impl Eq for FieldFocus
Source§impl PartialEq for FieldFocus
impl PartialEq for FieldFocus
impl StructuralPartialEq for FieldFocus
Auto Trait Implementations§
impl Freeze for FieldFocus
impl RefUnwindSafe for FieldFocus
impl Send for FieldFocus
impl Sync for FieldFocus
impl Unpin for FieldFocus
impl UnsafeUnpin for FieldFocus
impl UnwindSafe for FieldFocus
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().