Only show breadcrumbs for terminals when there's a title (#20997)
Closes https://github.com/zed-industries/zed/issues/20475 Release Notes: - Fixed terminal title and breadcrumbs behavior --------- Co-authored-by: Thorsten Ball <thorsten@zed.dev>
This commit is contained in:
co-authored by
Thorsten Ball
parent
395e25be25
commit
5ff49db92f
@@ -1,6 +1,7 @@
|
||||
use std::{ops::ControlFlow, path::PathBuf, sync::Arc};
|
||||
|
||||
use crate::{default_working_directory, TerminalView};
|
||||
use breadcrumbs::Breadcrumbs;
|
||||
use collections::{HashMap, HashSet};
|
||||
use db::kvp::KEY_VALUE_STORE;
|
||||
use futures::future::join_all;
|
||||
@@ -138,8 +139,11 @@ impl TerminalPanel {
|
||||
ControlFlow::Break(())
|
||||
});
|
||||
let buffer_search_bar = cx.new_view(search::BufferSearchBar::new);
|
||||
pane.toolbar()
|
||||
.update(cx, |toolbar, cx| toolbar.add_item(buffer_search_bar, cx));
|
||||
let breadcrumbs = cx.new_view(|_| Breadcrumbs::new());
|
||||
pane.toolbar().update(cx, |toolbar, cx| {
|
||||
toolbar.add_item(buffer_search_bar, cx);
|
||||
toolbar.add_item(breadcrumbs, cx);
|
||||
});
|
||||
pane
|
||||
});
|
||||
let subscriptions = vec![
|
||||
|
||||
@@ -109,7 +109,7 @@ pub struct TerminalView {
|
||||
blink_epoch: usize,
|
||||
can_navigate_to_selected_word: bool,
|
||||
workspace_id: Option<WorkspaceId>,
|
||||
show_title: bool,
|
||||
show_breadcrumbs: bool,
|
||||
block_below_cursor: Option<Rc<BlockProperties>>,
|
||||
scroll_top: Pixels,
|
||||
_subscriptions: Vec<Subscription>,
|
||||
@@ -189,7 +189,7 @@ impl TerminalView {
|
||||
blink_epoch: 0,
|
||||
can_navigate_to_selected_word: false,
|
||||
workspace_id,
|
||||
show_title: TerminalSettings::get_global(cx).toolbar.title,
|
||||
show_breadcrumbs: TerminalSettings::get_global(cx).toolbar.breadcrumbs,
|
||||
block_below_cursor: None,
|
||||
scroll_top: Pixels::ZERO,
|
||||
_subscriptions: vec![
|
||||
@@ -259,7 +259,7 @@ impl TerminalView {
|
||||
|
||||
fn settings_changed(&mut self, cx: &mut ViewContext<Self>) {
|
||||
let settings = TerminalSettings::get_global(cx);
|
||||
self.show_title = settings.toolbar.title;
|
||||
self.show_breadcrumbs = settings.toolbar.breadcrumbs;
|
||||
|
||||
let new_cursor_shape = settings.cursor_shape.unwrap_or_default();
|
||||
let old_cursor_shape = self.cursor_shape;
|
||||
@@ -1145,8 +1145,8 @@ impl Item for TerminalView {
|
||||
Some(Box::new(handle.clone()))
|
||||
}
|
||||
|
||||
fn breadcrumb_location(&self) -> ToolbarItemLocation {
|
||||
if self.show_title {
|
||||
fn breadcrumb_location(&self, cx: &AppContext) -> ToolbarItemLocation {
|
||||
if self.show_breadcrumbs && !self.terminal().read(cx).breadcrumb_text.trim().is_empty() {
|
||||
ToolbarItemLocation::PrimaryLeft
|
||||
} else {
|
||||
ToolbarItemLocation::Hidden
|
||||
|
||||
Reference in New Issue
Block a user