aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md9
-rw-r--r--alacritty/src/renderer/mod.rs31
2 files changed, 20 insertions, 20 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e6b301e2..b41ed24f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,14 +10,15 @@ Notable changes to the `alacritty_terminal` crate are documented in its
## 0.14.0-dev
+### Changed
+
+- Pressing `Alt` with unicode input will now add `ESC` like for ASCII input
+
### Fixed
- Crash when trying to create a new tab without decorations enabled
- New window being treated as focused when it's not on Wayland
-
-### Changed
-
-- Pressing `Alt` with unicode input will now add `ESC` like for ASCII input
+- IME preview blending into text below it
## 0.13.2
diff --git a/alacritty/src/renderer/mod.rs b/alacritty/src/renderer/mod.rs
index 02bfd762..f4f1397f 100644
--- a/alacritty/src/renderer/mod.rs
+++ b/alacritty/src/renderer/mod.rs
@@ -205,30 +205,29 @@ impl Renderer {
size_info: &SizeInfo,
glyph_cache: &mut GlyphCache,
) {
- let mut skip_next = false;
- let cells = string_chars.enumerate().filter_map(|(i, character)| {
- if skip_next {
- skip_next = false;
- return None;
- }
-
- let mut flags = Flags::empty();
- if character.width() == Some(2) {
- flags.insert(Flags::WIDE_CHAR);
- // Wide character is always followed by a spacer, so skip it.
- skip_next = true;
- }
+ let mut wide_char_spacer = false;
+ let cells = string_chars.enumerate().map(|(i, character)| {
+ let flags = if wide_char_spacer {
+ wide_char_spacer = false;
+ Flags::WIDE_CHAR_SPACER
+ } else if character.width() == Some(2) {
+ // The spacer is always following the wide char.
+ wide_char_spacer = true;
+ Flags::WIDE_CHAR
+ } else {
+ Flags::empty()
+ };
- Some(RenderableCell {
+ RenderableCell {
point: Point::new(point.line, point.column + i),
character,
extra: None,
- flags: Flags::empty(),
+ flags,
bg_alpha: 1.0,
fg,
bg,
underline: fg,
- })
+ }
});
self.draw_cells(size_info, glyph_cache, cells);