Re-render toolbar items when updating their knowledge of pane focus

This commit is contained in:
Julia 2023-04-18 14:56:39 -04:00
parent 1b477c9e38
commit 721baf5746

View file

@ -70,6 +70,7 @@ impl View for Toolbar {
for (item, position) in &self.items { for (item, position) in &self.items {
match *position { match *position {
ToolbarItemLocation::Hidden => {} ToolbarItemLocation::Hidden => {}
ToolbarItemLocation::PrimaryLeft { flex } => { ToolbarItemLocation::PrimaryLeft { flex } => {
let left_item = ChildView::new(item.as_any(), cx) let left_item = ChildView::new(item.as_any(), cx)
.aligned() .aligned()
@ -81,6 +82,7 @@ impl View for Toolbar {
primary_left_items.push(left_item.boxed()); primary_left_items.push(left_item.boxed());
} }
} }
ToolbarItemLocation::PrimaryRight { flex } => { ToolbarItemLocation::PrimaryRight { flex } => {
let right_item = ChildView::new(item.as_any(), cx) let right_item = ChildView::new(item.as_any(), cx)
.aligned() .aligned()
@ -93,6 +95,7 @@ impl View for Toolbar {
primary_right_items.push(right_item.boxed()); primary_right_items.push(right_item.boxed());
} }
} }
ToolbarItemLocation::Secondary => { ToolbarItemLocation::Secondary => {
secondary_item = Some( secondary_item = Some(
ChildView::new(item.as_any(), cx) ChildView::new(item.as_any(), cx)
@ -300,7 +303,10 @@ impl<T: ToolbarItemView> ToolbarItemViewHandle for ViewHandle<T> {
} }
fn pane_focus_update(&mut self, pane_focused: bool, cx: &mut AppContext) { fn pane_focus_update(&mut self, pane_focused: bool, cx: &mut AppContext) {
self.update(cx, |this, cx| this.pane_focus_update(pane_focused, cx)); self.update(cx, |this, cx| {
this.pane_focus_update(pane_focused, cx);
cx.notify();
});
} }
} }