Ensure disable_ai is properly respected (#34941)

Quick follow up to #34896 which ensures that the Agent Panel cannot be
caught by actions like `workspace: toggle left dock` when `disable_ai`
is set to true.

Also removes a method that was introduced but unused in the workspace
because `first_enabled_panel_idx` already covers all cases this method
could be useful for.

Release Notes:

- N/A
This commit is contained in:
Finn Evers 2025-07-23 12:20:09 +02:00 committed by GitHub
parent c2c2264a60
commit 2bc6e18ac9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 12 deletions

View file

@ -1,5 +1,5 @@
use std::cell::RefCell; use std::cell::RefCell;
use std::ops::Range; use std::ops::{Not, Range};
use std::path::Path; use std::path::Path;
use std::rc::Rc; use std::rc::Rc;
use std::sync::Arc; use std::sync::Arc;
@ -1666,10 +1666,7 @@ impl Panel for AgentPanel {
} }
fn icon(&self, _window: &Window, cx: &App) -> Option<IconName> { fn icon(&self, _window: &Window, cx: &App) -> Option<IconName> {
(self.enabled(cx) (self.enabled(cx) && AgentSettings::get_global(cx).button).then_some(IconName::ZedAssistant)
&& AgentSettings::get_global(cx).button
&& !DisableAiSettings::get_global(cx).disable_ai)
.then_some(IconName::ZedAssistant)
} }
fn icon_tooltip(&self, _window: &Window, _cx: &App) -> Option<&'static str> { fn icon_tooltip(&self, _window: &Window, _cx: &App) -> Option<&'static str> {
@ -1685,7 +1682,7 @@ impl Panel for AgentPanel {
} }
fn enabled(&self, cx: &App) -> bool { fn enabled(&self, cx: &App) -> bool {
AgentSettings::get_global(cx).enabled DisableAiSettings::get_global(cx).disable_ai.not() && AgentSettings::get_global(cx).enabled
} }
fn is_zoomed(&self, _window: &Window, _cx: &App) -> bool { fn is_zoomed(&self, _window: &Window, _cx: &App) -> bool {

View file

@ -374,12 +374,6 @@ impl Dock {
}) })
} }
pub fn first_enabled_panel_idx_excluding(&self, exclude_name: &str, cx: &App) -> Option<usize> {
self.panel_entries.iter().position(|entry| {
entry.panel.persistent_name() != exclude_name && entry.panel.enabled(cx)
})
}
fn active_panel_entry(&self) -> Option<&PanelEntry> { fn active_panel_entry(&self) -> Option<&PanelEntry> {
self.active_panel_index self.active_panel_index
.and_then(|index| self.panel_entries.get(index)) .and_then(|index| self.panel_entries.get(index))