fixup! pane: Another stab at focus flickers in tab bar

This commit is contained in:
Piotr Osiewicz 2024-01-24 14:01:17 +01:00
parent 0497b2f212
commit fe2cb9f9ca

View file

@ -342,12 +342,10 @@ impl Pane {
} }
pub fn has_focus(&self, cx: &WindowContext) -> bool { pub fn has_focus(&self, cx: &WindowContext) -> bool {
// In addition to checking our own focus handle,
// we need to account for a brief moment (when active item is being switched)
// where we don't have focus.
// We not only check whether our focus handle contains focus, but also // We not only check whether our focus handle contains focus, but also
// whether the active_item might have focus, because we might have just activated an item // whether the active_item might have focus, because we might have just activated an item
// but that hasn't rendered yet. So before the next render, we might have transfered focus // but that hasn't rendered yet.
// So before the next render, we might have transfered focus
// to the item and `focus_handle.contains_focus` returns false because the `active_item` // to the item and `focus_handle.contains_focus` returns false because the `active_item`
// is not hooked up to us in the dispatch tree. // is not hooked up to us in the dispatch tree.
self.focus_handle.contains_focused(cx) self.focus_handle.contains_focused(cx)