diff options
author | Christian Duerr <contact@christianduerr.com> | 2017-12-06 23:44:51 +0100 |
---|---|---|
committer | Joe Wilm <jwilm@users.noreply.github.com> | 2017-12-24 09:46:54 -0800 |
commit | 5149dcffbffe0bf35ad3bc85a48f9c82b9ea6477 (patch) | |
tree | 781267e955d7faff683f43c34022450df8287405 | |
parent | bf72b5a326c2c06541fd0564417a4ad52a9938bc (diff) | |
download | alacritty-5149dcffbffe0bf35ad3bc85a48f9c82b9ea6477.tar.gz alacritty-5149dcffbffe0bf35ad3bc85a48f9c82b9ea6477.zip |
Revert to old system for macos
Because rendering with macos works differently, the old underline cursor
is used for that. The cursor symbol has also been setup as a constant in
the font project.
-rw-r--r-- | font/src/ft/mod.rs | 4 | ||||
-rw-r--r-- | font/src/lib.rs | 6 | ||||
-rw-r--r-- | src/term/mod.rs | 3 |
3 files changed, 10 insertions, 3 deletions
diff --git a/font/src/ft/mod.rs b/font/src/ft/mod.rs index 25917e96..b8559237 100644 --- a/font/src/ft/mod.rs +++ b/font/src/ft/mod.rs @@ -24,7 +24,7 @@ use libc::c_uint; pub mod fc; -use super::{FontDesc, RasterizedGlyph, Metrics, Size, FontKey, GlyphKey, Weight, Slant, Style}; +use super::{FontDesc, RasterizedGlyph, Metrics, Size, FontKey, GlyphKey, Weight, Slant, Style, UNDERLINE_CURSOR_CHAR}; struct FixedSize { pixelsize: f64, @@ -295,7 +295,7 @@ impl FreeTypeRasterizer { let (pixel_width, buf) = Self::normalize_buffer(&glyph.bitmap())?; // Render a custom symbol for the underline cursor - if glyph_key.c == '' { + if glyph_key.c == UNDERLINE_CURSOR_CHAR { // Get the bottom of the bounding box let size_metrics = face.ft_face.size_metrics() .ok_or(Error::MissingSizeMetrics)?; diff --git a/font/src/lib.rs b/font/src/lib.rs index 513dacdd..d22746d3 100644 --- a/font/src/lib.rs +++ b/font/src/lib.rs @@ -58,6 +58,12 @@ mod darwin; #[cfg(target_os = "macos")] pub use darwin::*; +/// Character used for the underline cursor +#[cfg(not(target_os = "macos"))] +pub const UNDERLINE_CURSOR_CHAR: char = ''; +#[cfg(target_os = "macos")] +pub const UNDERLINE_CURSOR_CHAR: char = '▁'; + #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct FontDesc { name: String, diff --git a/src/term/mod.rs b/src/term/mod.rs index 892a96bb..1fbe4d8e 100644 --- a/src/term/mod.rs +++ b/src/term/mod.rs @@ -22,6 +22,7 @@ use std::time::{Duration, Instant}; use arraydeque::ArrayDeque; use unicode_width::UnicodeWidthChar; +use font; use ansi::{self, Color, NamedColor, Attr, Handler, CharsetIndex, StandardCharset, CursorStyle}; use grid::{BidirectionalIterator, Grid, ClearRegion, ToRange, Indexed}; use index::{self, Point, Column, Line, Linear, IndexRange, Contains, RangeInclusive}; @@ -208,7 +209,7 @@ impl<'a> RenderableCellsIter<'a> { let cursor_color = self.text_cursor_color(&cursor_cell); // This is part of the private use area and shouldn't be used by any font - cursor_cell.c = ''; + cursor_cell.c = font::UNDERLINE_CURSOR_CHAR; cursor_cell.fg = cursor_color; self.cursor_cells.push_back(Indexed { line: self.cursor.line, |