From a75e9493449d90b54a140b76f6a96b684784a059 Mon Sep 17 00:00:00 2001 From: Dustin Date: Thu, 17 Oct 2019 15:24:21 -0400 Subject: [PATCH] Fix window title not filled by default In the config, if `window` is undefined, the derived `Default` for the String `title` is used, which is an empty String. This was unintended, and causes issues in gnome-shell (e.g. in the alt-tab dialog) when the window title is an empty string. This commit adds a manually implemented default for the `WindowConfig`, it's the same as the derived `Default`, except for the `title`, which will now always be "Alacritty" as originally intended. --- alacritty/src/cli.rs | 3 +-- alacritty_terminal/src/config/window.rs | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/alacritty/src/cli.rs b/alacritty/src/cli.rs index b0e3cc9..98edabc 100644 --- a/alacritty/src/cli.rs +++ b/alacritty/src/cli.rs @@ -301,8 +301,7 @@ mod test { #[test] fn dynamic_title_ignoring_options_by_default() { - let mut config = Config::default(); - config.window.title = "Alacritty".to_string(); + let config = Config::default(); let old_dynamic_title = config.dynamic_title(); let config = Options::default().into_config(config); diff --git a/alacritty_terminal/src/config/window.rs b/alacritty_terminal/src/config/window.rs index 49bd70b..3c06f85 100644 --- a/alacritty_terminal/src/config/window.rs +++ b/alacritty_terminal/src/config/window.rs @@ -9,7 +9,7 @@ use crate::index::{Column, Line}; pub const DEFAULT_NAME: &str = "Alacritty"; #[serde(default)] -#[derive(Deserialize, Debug, Clone, Default, PartialEq, Eq)] +#[derive(Deserialize, Debug, Clone, PartialEq, Eq)] pub struct WindowConfig { /// Initial dimensions #[serde(deserialize_with = "failure_default")] @@ -69,6 +69,24 @@ impl WindowConfig { } } +impl Default for WindowConfig { + fn default() -> WindowConfig { + WindowConfig { + dimensions: Default::default(), + position: Default::default(), + padding: Default::default(), + decorations: Default::default(), + dynamic_padding: Default::default(), + startup_mode: Default::default(), + class: Default::default(), + embed: Default::default(), + gtk_theme_variant: Default::default(), + start_maximized: Default::default(), + title: default_title(), + } + } +} + #[derive(Debug, Deserialize, Copy, Clone, PartialEq, Eq)] pub enum StartupMode { Windowed,