aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2017-12-13 18:24:12 +0100
committerJoe Wilm <jwilm@users.noreply.github.com>2017-12-24 09:46:54 -0800
commit6eb634a2b83a8a401973ec9e52c7c7ffb5b9fe84 (patch)
treefbd7755e3fa77d444efade621054069071db6b53
parent44251d9dbb411b5e915d28a8c10c3b34cb42abfd (diff)
downloadalacritty-6eb634a2b83a8a401973ec9e52c7c7ffb5b9fe84.tar.gz
alacritty-6eb634a2b83a8a401973ec9e52c7c7ffb5b9fe84.zip
Add box cursor to unfocused underline and beam
Because some people have requested this change, the beam and underline cursors now also transform into an empty box when the terminal loses focus. Like this there is one unique symbol to indicate that a terminal is not currently focused.
-rw-r--r--font/src/lib.rs2
-rw-r--r--src/term/mod.rs30
2 files changed, 16 insertions, 16 deletions
diff --git a/font/src/lib.rs b/font/src/lib.rs
index 68935e45..ad1f4f80 100644
--- a/font/src/lib.rs
+++ b/font/src/lib.rs
@@ -255,7 +255,7 @@ pub fn get_beam_cursor_glyph(
});
}
-// Returns a custom beam cursor character
+// Returns a custom box cursor character
pub fn get_box_cursor_glyph(
ascent: i32,
height: i32,
diff --git a/src/term/mod.rs b/src/term/mod.rs
index da59a037..571686c1 100644
--- a/src/term/mod.rs
+++ b/src/term/mod.rs
@@ -136,12 +136,7 @@ impl<'a> RenderableCellsIter<'a> {
}.initialize(cursor_style, window_focused)
}
- fn populate_block_cursor(&mut self, window_focused: bool) {
- if !window_focused {
- self.populate_cursor(font::BOX_CURSOR_CHAR, ' ');
- return;
- }
-
+ fn populate_block_cursor(&mut self) {
let (text_color, cursor_color) = if self.config.custom_cursor_colors() {
(
Color::Named(NamedColor::CursorText),
@@ -233,15 +228,20 @@ impl<'a> RenderableCellsIter<'a> {
fn initialize(mut self, cursor_style: CursorStyle, window_focused: bool) -> Self {
if self.cursor_is_visible() {
- match cursor_style {
- CursorStyle::Block => {
- self.populate_block_cursor(window_focused);
- },
- CursorStyle::Beam => {
- self.populate_beam_cursor();
- },
- CursorStyle::Underline => {
- self.populate_underline_cursor();
+ if !window_focused {
+ // Render the box cursor if the window is not focused
+ self.populate_cursor(font::BOX_CURSOR_CHAR, ' ');
+ } else {
+ match cursor_style {
+ CursorStyle::Block => {
+ self.populate_block_cursor();
+ },
+ CursorStyle::Beam => {
+ self.populate_beam_cursor();
+ },
+ CursorStyle::Underline => {
+ self.populate_underline_cursor();
+ }
}
}
} else {