Emit a `BreadcrumbsChanged` event when associated settings changed (#36177)
Joseph T. Lyons
created 3 months ago
Closes https://github.com/zed-industries/zed/issues/36149
Release Notes:
- Fixed a bug where changing the `toolbar.breadcrumbs` setting didn't
immediately update the UI when saving the `settings.json` file.
Change summary
crates/editor/src/editor.rs | 6 ++++++
crates/editor/src/items.rs | 4 ++++
2 files changed, 10 insertions(+)
Detailed changes
@@ -20209,6 +20209,7 @@ impl Editor {
);
let old_cursor_shape = self.cursor_shape;
+ let old_show_breadcrumbs = self.show_breadcrumbs;
{
let editor_settings = EditorSettings::get_global(cx);
@@ -20222,6 +20223,10 @@ impl Editor {
cx.emit(EditorEvent::CursorShapeChanged);
}
+ if old_show_breadcrumbs != self.show_breadcrumbs {
+ cx.emit(EditorEvent::BreadcrumbsChanged);
+ }
+
let project_settings = ProjectSettings::get_global(cx);
self.serialize_dirty_buffers =
!self.mode.is_minimap() && project_settings.session.restore_unsaved_buffers;
@@ -22843,6 +22848,7 @@ pub enum EditorEvent {
},
Reloaded,
CursorShapeChanged,
+ BreadcrumbsChanged,
PushedToNavHistory {
anchor: Anchor,
is_deactivate: bool,
@@ -1036,6 +1036,10 @@ impl Item for Editor {
f(ItemEvent::UpdateBreadcrumbs);
}
+ EditorEvent::BreadcrumbsChanged => {
+ f(ItemEvent::UpdateBreadcrumbs);
+ }
+
EditorEvent::DirtyChanged => {
f(ItemEvent::UpdateTab);
}