diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2019-02-20 15:49:02 -0500 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2019-02-20 15:49:02 -0500 |
commit | 412b1ebb44382522084f615d58cb75374bc64778 (patch) | |
tree | b0a5a341f99621a803ca21abddbac1d5a2637b48 | |
parent | 38ec4f9d50388ff0cbf8f0915428c7093cc6f586 (diff) |
fix pressing end button removes 'cursor'
-rw-r--r-- | src/textfield.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/textfield.rs b/src/textfield.rs index b1294e0..e4cd8da 100644 --- a/src/textfield.rs +++ b/src/textfield.rs @@ -36,7 +36,7 @@ impl JoshutoTextField { fn readline_( &self, - mut buffer: Vec<(char)>, + mut buffer: Vec<char>, mut curs_x: i32, mut curr_index: usize, ) -> Option<String> { @@ -80,8 +80,9 @@ impl JoshutoTextField { } else if ch == ncurses::KEY_END { let buffer_len = buffer.len(); if curr_index != buffer_len { - for x in &buffer { - curs_x += *x as i32; + for i in curr_index..buffer_len { + curs_x += unicode_width::UnicodeWidthChar::width(buffer[i]) + .unwrap_or(1) as i32; } curr_index = buffer_len; } |