@@ -4,7 +4,7 @@ mod onboarding_banner;
pub mod platform_title_bar;
mod platforms;
mod system_window_tabs;
-pub mod title_bar_settings;
+mod title_bar_settings;
#[cfg(feature = "stories")]
mod stories;
@@ -35,7 +35,7 @@ use remote::RemoteConnectionOptions;
use settings::{Settings, SettingsLocation};
use std::{path::Path, sync::Arc};
use theme::ActiveTheme;
-use title_bar_settings::{TitleBarSettings, TitleBarVisibility};
+use title_bar_settings::TitleBarSettings;
use ui::{
Avatar, Button, ButtonLike, ButtonStyle, Chip, ContextMenu, Icon, IconName, IconSize,
IconWithIndicator, Indicator, PopoverMenu, PopoverMenuHandle, Tooltip, h_flex, prelude::*,
@@ -73,49 +73,8 @@ pub fn init(cx: &mut App) {
let Some(window) = window else {
return;
};
- let should_show = match TitleBarSettings::get_global(cx).show {
- TitleBarVisibility::Always => true,
- TitleBarVisibility::Never => false,
- TitleBarVisibility::HideInFullScreen => !window.is_fullscreen(),
- };
- if should_show {
- let item = cx.new(|cx| TitleBar::new("title-bar", workspace, window, cx));
- workspace.set_titlebar_item(item.into(), window, cx);
- }
-
- cx.observe_global_in::<settings::SettingsStore>(window, |workspace, window, cx| {
- let should_show = match TitleBarSettings::get_global(cx).show {
- TitleBarVisibility::Always => true,
- TitleBarVisibility::Never => false,
- TitleBarVisibility::HideInFullScreen => !window.is_fullscreen(),
- };
- if should_show {
- if workspace.titlebar_item().is_none() {
- let item = cx.new(|cx| TitleBar::new("title-bar", workspace, window, cx));
- workspace.set_titlebar_item(item.into(), window, cx);
- }
- } else {
- workspace.clear_titlebar_item(window, cx);
- }
- })
- .detach();
-
- cx.observe_window_bounds(window, |workspace, window, cx| {
- let should_show = match TitleBarSettings::get_global(cx).show {
- TitleBarVisibility::Always => true,
- TitleBarVisibility::Never => false,
- TitleBarVisibility::HideInFullScreen => !window.is_fullscreen(),
- };
- if should_show {
- if workspace.titlebar_item().is_none() {
- let item = cx.new(|cx| TitleBar::new("title-bar", workspace, window, cx));
- workspace.set_titlebar_item(item.into(), window, cx);
- }
- } else {
- workspace.clear_titlebar_item(window, cx);
- }
- })
- .detach();
+ let item = cx.new(|cx| TitleBar::new("title-bar", workspace, window, cx));
+ workspace.set_titlebar_item(item.into(), window, cx);
#[cfg(not(target_os = "macos"))]
workspace.register_action(|workspace, action: &OpenApplicationMenu, window, cx| {
@@ -3,17 +3,8 @@ use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use settings::{Settings, SettingsKey, SettingsSources, SettingsUi};
-#[derive(Copy, Clone, Serialize, Deserialize, JsonSchema, Debug, SettingsUi)]
-#[serde(rename_all = "snake_case")]
-pub enum TitleBarVisibility {
- Always,
- Never,
- HideInFullScreen,
-}
-
#[derive(Copy, Clone, Deserialize, Debug)]
pub struct TitleBarSettings {
- pub show: TitleBarVisibility,
pub show_branch_icon: bool,
pub show_onboarding_banner: bool,
pub show_user_picture: bool,
@@ -29,10 +20,6 @@ pub struct TitleBarSettings {
#[settings_ui(group = "Title Bar")]
#[settings_key(key = "title_bar")]
pub struct TitleBarSettingsContent {
- /// Controls when the title bar is visible: "always" | "never" | "hide_in_full_screen".
- ///
- /// Default: "always"
- pub show: Option<TitleBarVisibility>,
/// Whether to show the branch icon beside branch switcher in the title bar.
///
/// Default: false