Compare commits

...

2 Commits

Author SHA1 Message Date
Kirill Chibisov
bbdcb79bbd Release 0.27.5 version 2022-10-26 17:41:45 +03:00
Kirill Chibisov
b8ac784ffc On Wayland, fix invalid offsets being sent in Preedit
Even when the protocol explicitly tells to send proper UTF-8
boundaries for cursor, some IMEs don't do that, so sanity check
them before sending downstream.
2022-10-26 17:41:45 +03:00
4 changed files with 13 additions and 4 deletions

View File

@@ -8,6 +8,10 @@ And please only add new entries to the top of this list, right below the `# Unre
# Unreleased
# 0.27.5
- On Wayland, fix byte offset in `Ime::Preedit` pointing to invalid bytes.
# 0.27.4
- On Windows, emit `ReceivedCharacter` events on system keybindings.

View File

@@ -1,6 +1,6 @@
[package]
name = "winit"
version = "0.27.4"
version = "0.27.5"
authors = ["The winit contributors", "Pierre Krieger <pierre.krieger1708@gmail.com>"]
description = "Cross-platform window creation library."
edition = "2021"

View File

@@ -6,7 +6,7 @@
```toml
[dependencies]
winit = "0.27.4"
winit = "0.27.5"
```
## [Documentation](https://docs.rs/winit)

View File

@@ -68,9 +68,14 @@ pub(super) fn handle_text_input(
cursor_begin,
cursor_end,
} => {
let cursor_begin = usize::try_from(cursor_begin).ok();
let cursor_end = usize::try_from(cursor_end).ok();
let text = text.unwrap_or_default();
let cursor_begin = usize::try_from(cursor_begin)
.ok()
.and_then(|idx| text.is_char_boundary(idx).then(|| idx));
let cursor_end = usize::try_from(cursor_end)
.ok()
.and_then(|idx| text.is_char_boundary(idx).then(|| idx));
inner.pending_preedit = Some(Preedit {
text,
cursor_begin,