aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Duerr <chrisduerr@users.noreply.github.com>2019-04-20 22:47:05 +0000
committerGitHub <noreply@github.com>2019-04-20 22:47:05 +0000
commit0d060d5d801e3abb55035269138d819d38fc175b (patch)
tree7e5e6a390aa57ff8caafc782b2371634c906b3c9 /src
parent371d13f8ef95157c97f7de9964bcbc89d4a8e930 (diff)
downloadr-alacritty-0d060d5d801e3abb55035269138d819d38fc175b.tar.gz
r-alacritty-0d060d5d801e3abb55035269138d819d38fc175b.tar.bz2
r-alacritty-0d060d5d801e3abb55035269138d819d38fc175b.zip
Fix cursor colors
This fixes a recent regression in cfc20d4f34dca535654cc32df18e785296af4cc5 which broke cursor colors when specified in the `colors.cursor` field in the config. It also removes a lot of unneeded code from the font crate related to the cursor rendering. This fixes #2338.
Diffstat (limited to 'src')
-rw-r--r--src/config/mod.rs10
-rw-r--r--src/term/mod.rs8
2 files changed, 13 insertions, 5 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs
index 3cd33eac..67431e68 100644
--- a/src/config/mod.rs
+++ b/src/config/mod.rs
@@ -21,7 +21,7 @@ use serde::de::{MapAccess, Unexpected, Visitor};
use serde::{self, de, Deserialize};
use serde_yaml;
-use crate::ansi::{Color, CursorStyle, NamedColor};
+use crate::ansi::CursorStyle;
use crate::cli::Options;
use crate::index::{Column, Line};
use crate::input::{Action, Binding, KeyBinding, MouseBinding};
@@ -1877,14 +1877,14 @@ impl Config {
/// Cursor foreground color
#[inline]
- pub fn cursor_text_color(&self) -> Option<Color> {
- self.colors.cursor.text.map(|_| Color::Named(NamedColor::CursorText))
+ pub fn cursor_text_color(&self) -> Option<Rgb> {
+ self.colors.cursor.text
}
/// Cursor background color
#[inline]
- pub fn cursor_cursor_color(&self) -> Option<Color> {
- self.colors.cursor.cursor.map(|_| Color::Named(NamedColor::Cursor))
+ pub fn cursor_cursor_color(&self) -> Option<Rgb> {
+ self.colors.cursor.cursor
}
/// Enable experimental conpty backend (Windows only)
diff --git a/src/term/mod.rs b/src/term/mod.rs
index 1f8850aa..5f69fb6c 100644
--- a/src/term/mod.rs
+++ b/src/term/mod.rs
@@ -385,6 +385,10 @@ impl<'a> Iterator for RenderableCellsIter<'a> {
renderable_cell.inner = RenderableCellContent::Raw(cursor_cell);
+ if let Some(color) = self.config.cursor_cursor_color() {
+ renderable_cell.fg = color;
+ }
+
return Some(renderable_cell);
} else {
let mut cell =
@@ -392,6 +396,10 @@ impl<'a> Iterator for RenderableCellsIter<'a> {
if self.cursor_style == CursorStyle::Block {
std::mem::swap(&mut cell.bg, &mut cell.fg);
+
+ if let Some(color) = self.config.cursor_text_color() {
+ cell.fg = color;
+ }
}
return Some(cell);