mirror of
https://github.com/alacritty/alacritty.git
synced 2025-06-30 19:22:55 -04:00
Fix IME position with fullwidth chars in search
This commit is contained in:
parent
9a62f47292
commit
085cc35b14
2 changed files with 6 additions and 4 deletions
|
@ -43,6 +43,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||||
- Pasting into clients only supporting `UTF8_STRING` mime type on Wayland
|
- Pasting into clients only supporting `UTF8_STRING` mime type on Wayland
|
||||||
- Crash when copying/pasting with neither pointer nor keyboard focus on Wayland
|
- Crash when copying/pasting with neither pointer nor keyboard focus on Wayland
|
||||||
- Crash due to fd leak on Wayland
|
- Crash due to fd leak on Wayland
|
||||||
|
- IME window position with fullwidth characters in the search bar
|
||||||
|
|
||||||
## 0.5.0
|
## 0.5.0
|
||||||
|
|
||||||
|
|
|
@ -598,7 +598,7 @@ impl Display {
|
||||||
self.draw_search(config, &size_info, message_bar_lines, &search_text);
|
self.draw_search(config, &size_info, message_bar_lines, &search_text);
|
||||||
|
|
||||||
// Compute IME position.
|
// Compute IME position.
|
||||||
Point::new(size_info.lines() - 1, Column(search_text.len() - 1))
|
Point::new(size_info.lines() - 1, Column(search_text.chars().count() - 1))
|
||||||
},
|
},
|
||||||
None => cursor_point,
|
None => cursor_point,
|
||||||
};
|
};
|
||||||
|
@ -640,10 +640,11 @@ impl Display {
|
||||||
|
|
||||||
// Truncate beginning of the search regex if it exceeds the viewport width.
|
// Truncate beginning of the search regex if it exceeds the viewport width.
|
||||||
let num_cols = size_info.cols().0;
|
let num_cols = size_info.cols().0;
|
||||||
let label_len = search_label.len();
|
let label_len = search_label.chars().count();
|
||||||
let regex_len = formatted_regex.len();
|
let regex_len = formatted_regex.chars().count();
|
||||||
let truncate_len = min((regex_len + label_len).saturating_sub(num_cols), regex_len);
|
let truncate_len = min((regex_len + label_len).saturating_sub(num_cols), regex_len);
|
||||||
let truncated_regex = &formatted_regex[truncate_len..];
|
let index = formatted_regex.char_indices().nth(truncate_len).map(|(i, _c)| i).unwrap_or(0);
|
||||||
|
let truncated_regex = &formatted_regex[index..];
|
||||||
|
|
||||||
// Add search label to the beginning of the search regex.
|
// Add search label to the beginning of the search regex.
|
||||||
let mut bar_text = format!("{}{}", search_label, truncated_regex);
|
let mut bar_text = format!("{}{}", search_label, truncated_regex);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue