aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2017-12-06 23:44:51 +0100
committerJoe Wilm <jwilm@users.noreply.github.com>2017-12-24 09:46:54 -0800
commit5149dcffbffe0bf35ad3bc85a48f9c82b9ea6477 (patch)
tree781267e955d7faff683f43c34022450df8287405
parentbf72b5a326c2c06541fd0564417a4ad52a9938bc (diff)
downloadalacritty-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.rs4
-rw-r--r--font/src/lib.rs6
-rw-r--r--src/term/mod.rs3
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,