alacritty

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 31271c726e31f90729b5d23dac597edf68cc437a
parent 5096426f9e15a21bf78b23160f7c95a9ea2bd7f5
Author: Christian Duerr <chrisduerr@users.noreply.github.com>
Date:   Sun, 20 Jan 2019 17:39:15 +0000

Fix crash on Windows (#2021)

The rusttype backend did not properly support manually specifying font
styles, but instead chose to panic when they are specified.

The rusttype implementation now provides a proper implementation for
handling `bold`, `italic` and `regular` font styles.

This fixes #2020.

Diffstat:
MCHANGELOG.md | 6++++++
Malacritty.yml | 12++++++------
Mfont/src/rusttype/mod.rs | 8+++++++-
Msrc/config/mod.rs | 24+++---------------------
4 files changed, 22 insertions(+), 28 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- Crash when trying to start Alacritty on Windows + ## Version 0.2.6 ### Added diff --git a/alacritty.yml b/alacritty.yml @@ -79,7 +79,7 @@ tabspaces: 8 # Font configuration (changes require restart) font: # Normal (roman) font face - normal: + #normal: # Font family # # Default: @@ -89,10 +89,10 @@ font: #family: monospace # The `style` can be specified to pick a specific face. - style: Regular + #style: Regular # Bold font face - bold: + #bold: # Font family # # If the bold family is not specified, it will fall back to the @@ -100,10 +100,10 @@ font: #family: monospace # The `style` can be specified to pick a specific face. - style: Bold + #style: Bold # Italic font face - italic: + #italic: # Font family # # If the italic family is not specified, it will fall back to the @@ -111,7 +111,7 @@ font: #family: monospace # The `style` can be specified to pick a specific face. - style: Italic + #style: Italic # Point size size: 11.0 diff --git a/font/src/rusttype/mod.rs b/font/src/rusttype/mod.rs @@ -61,7 +61,13 @@ impl crate::Rasterize for RustTypeRasterizer { .monospace(); let fp = match desc.style { - Style::Specific(_) => unimplemented!(""), + Style::Specific(ref style) => { + match style.to_lowercase().as_str() { + "italic" => fp.italic(), + "bold" => fp.bold(), + _ => fp, + } + }, Style::Description { slant, weight } => { let fp = match slant { Slant::Normal => fp, diff --git a/src/config/mod.rs b/src/config/mod.rs @@ -2060,9 +2060,9 @@ impl Default for Font { #[cfg(target_os = "macos")] use_thin_strokes: true, size: default_font_size(), - normal: FontDescription::new_with_style("Regular"), - bold: SecondaryFontDescription::new_with_style("Bold"), - italic: SecondaryFontDescription::new_with_style("Italic"), + normal: Default::default(), + bold: Default::default(), + italic: Default::default(), scale_with_dpi: Default::default(), glyph_offset: Default::default(), offset: Default::default(), @@ -2152,15 +2152,6 @@ impl Default for FontDescription { } } -impl FontDescription { - fn new_with_style(style: &str) -> Self { - Self { - style: Some(style.into()), - ..Default::default() - } - } -} - /// Description of the italic and bold font #[serde(default)] #[derive(Debug, Default, Deserialize, Clone, PartialEq, Eq)] @@ -2180,15 +2171,6 @@ impl SecondaryFontDescription { } } -impl SecondaryFontDescription { - fn new_with_style(style: &str) -> Self { - Self { - style: Some(style.into()), - ..Default::default() - } - } -} - pub struct Monitor { _thread: ::std::thread::JoinHandle<()>, rx: mpsc::Receiver<Config>,