diff --git a/crates/gpui3/src/elements/hoverable.rs b/crates/gpui3/src/elements/hoverable.rs index e34a7ad7b5..44d8c123cf 100644 --- a/crates/gpui3/src/elements/hoverable.rs +++ b/crates/gpui3/src/elements/hoverable.rs @@ -108,9 +108,10 @@ where let hovered = self.hovered.clone(); move |_, event: &MouseMoveEvent, phase, cx| { - if phase == DispatchPhase::Capture { + if phase == DispatchPhase::Bubble { if target_bounds.contains_point(event.position) != hovered.load(SeqCst) { cx.notify(); + cx.stop_propagation(); } } } diff --git a/crates/ui2/src/components/list.rs b/crates/ui2/src/components/list.rs index 9bdffa991c..922bbfc2ba 100644 --- a/crates/ui2/src/components/list.rs +++ b/crates/ui2/src/components/list.rs @@ -397,6 +397,7 @@ impl ListEntry { div() .relative() + .group("") .fill(color.surface) .when(self.state == InteractionState::Focused, |this| { this.border().border_color(color.border_focused) @@ -411,6 +412,8 @@ impl ListEntry { .h_full() .flex() .justify_center() + .group_hover("") + .fill(color.border_focused) .child( h_stack() .child(div().w_px().h_full()) diff --git a/crates/ui2/src/components/notification.rs b/crates/ui2/src/components/notification.rs index d8f6919463..b364bfa4ae 100644 --- a/crates/ui2/src/components/notification.rs +++ b/crates/ui2/src/components/notification.rs @@ -24,6 +24,7 @@ pub struct NotificationToast { impl NotificationToast { pub fn new( + // TODO: use a `SharedString` here title: impl Into, message: impl Into, primary_action: Button, diff --git a/crates/ui2/src/prelude.rs b/crates/ui2/src/prelude.rs index 9b369c0701..5b6f166c48 100644 --- a/crates/ui2/src/prelude.rs +++ b/crates/ui2/src/prelude.rs @@ -19,7 +19,7 @@ pub struct Token { impl Default for Token { fn default() -> Self { Self { - list_indent_depth: AbsoluteLength::Rems(rems(0.3)), + list_indent_depth: rems(0.3).into(), default_panel_size: AbsoluteLength::Rems(rems(16.)), state_hover_background: hsla(0.0, 0.0, 0.0, 0.08), state_active_background: hsla(0.0, 0.0, 0.0, 0.16), @@ -74,7 +74,8 @@ pub struct ThemeColor { /// or tapped on a touch screen. /// - TODO: Map to step 5. pub filled_element_active: Hsla, - /// The background color of a selected element, like a selected tab, a button toggled on, or a checkbox that is checked. + /// The background color of a selected element, like a selected tab, + /// a button toggled on, or a checkbox that is checked. pub filled_element_selected: Hsla, pub filled_element_disabled: Hsla, pub ghost_element: Hsla,