diff --git a/crates/gpui3/src/window.rs b/crates/gpui3/src/window.rs index 0f818bb4f0..5a68e0dfd2 100644 --- a/crates/gpui3/src/window.rs +++ b/crates/gpui3/src/window.rs @@ -945,7 +945,7 @@ impl<'a, 'w> WindowContext<'a, 'w> { } fn dispatch_action(&mut self, action: Box, listeners: &[(TypeId, AnyKeyListener)]) { - let action_type = action.type_id(); + let action_type = action.as_any().type_id(); for (event_type, listener) in listeners { if action_type == *event_type { listener(action.as_any(), DispatchPhase::Capture, self); @@ -958,7 +958,7 @@ impl<'a, 'w> WindowContext<'a, 'w> { if self.window.propagate { for (event_type, listener) in listeners.iter().rev() { if action_type == *event_type { - listener(action.as_any(), DispatchPhase::Capture, self); + listener(action.as_any(), DispatchPhase::Bubble, self); if !self.window.propagate { break; } diff --git a/crates/storybook2/src/stories/focus.rs b/crates/storybook2/src/stories/focus.rs index 3f75631cda..b10c75c190 100644 --- a/crates/storybook2/src/stories/focus.rs +++ b/crates/storybook2/src/stories/focus.rs @@ -69,7 +69,7 @@ impl FocusStory { println!("Action A dispatched on parent during {:?}", phase); }) .on_action(|_, action: &ActionB, phase, cx| { - println!("Action A dispatched on parent during {:?}", phase); + println!("Action B dispatched on parent during {:?}", phase); }) .focusable(&parent) .on_focus(|_, _, _| println!("Parent focused"))