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.
This commit is contained in:
Dustin 2019-10-17 15:24:21 -04:00 committed by Christian Duerr
parent f1f51d3c02
commit a75e949344
2 changed files with 20 additions and 3 deletions

View File

@ -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);

View File

@ -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,