mirror of
https://github.com/rust-windowing/winit.git
synced 2026-08-31 22:00:04 -04:00
On macOS, fix backspace emission on preedit clear
Fixes: d15feb5cfa (On macOS, fix empty marked text)
This commit is contained in:
@@ -8,6 +8,9 @@ And please only add new entries to the top of this list, right below the `# Unre
|
|||||||
|
|
||||||
# Unreleased
|
# Unreleased
|
||||||
|
|
||||||
|
- On macOS, fixed memory leak when getting monitor handle.
|
||||||
|
- On macOS, fix `Backspace` being emitted when clearing preedit with it.
|
||||||
|
|
||||||
# 0.28.5
|
# 0.28.5
|
||||||
|
|
||||||
- On macOS, fix `key_up` beind ignored when `Ime` is disabled.
|
- On macOS, fix `key_up` beind ignored when `Ime` is disabled.
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ impl Default for CursorState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Eq, PartialEq)]
|
#[derive(Debug, Eq, PartialEq, Clone, Copy)]
|
||||||
enum ImeState {
|
enum ImeState {
|
||||||
/// The IME events are disabled, so only `ReceivedCharacter` is being sent to the user.
|
/// The IME events are disabled, so only `ReceivedCharacter` is being sent to the user.
|
||||||
Disabled,
|
Disabled,
|
||||||
@@ -481,6 +481,7 @@ declare_class!(
|
|||||||
&& !ev_mods.logo();
|
&& !ev_mods.logo();
|
||||||
|
|
||||||
let characters = get_characters(event, ignore_alt_characters);
|
let characters = get_characters(event, ignore_alt_characters);
|
||||||
|
let old_ime_state = self.state.ime_state;
|
||||||
self.state.forward_key_to_app = false;
|
self.state.forward_key_to_app = false;
|
||||||
|
|
||||||
// The `interpretKeyEvents` function might call
|
// The `interpretKeyEvents` function might call
|
||||||
@@ -518,7 +519,8 @@ declare_class!(
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
ImeState::Preedit => true,
|
ImeState::Preedit => true,
|
||||||
_ => false,
|
// `key_down` could result in preedit clear, so compare old and current state.
|
||||||
|
_ => old_ime_state != self.state.ime_state,
|
||||||
};
|
};
|
||||||
|
|
||||||
if !had_ime_input || self.state.forward_key_to_app {
|
if !had_ime_input || self.state.forward_key_to_app {
|
||||||
|
|||||||
Reference in New Issue
Block a user