fix(xkb): text not being None when composing
When composing the text was not reset to `None` leading to input in some applications e.g. alacritty. Links: https://github.com/alacritty/alacritty/issues/7806
This commit is contained in:
parent
99e238065e
commit
4a8050289d
|
@ -11,6 +11,7 @@ Unreleased` header.
|
||||||
|
|
||||||
# Unreleased
|
# Unreleased
|
||||||
|
|
||||||
|
- On X11/Wayland, fix `text` and `text_with_all_modifiers` not being `None` during compose.
|
||||||
- On Wayland, don't reapply cursor grab when unchanged.
|
- On Wayland, don't reapply cursor grab when unchanged.
|
||||||
- Deprecate `EventLoop::run` in favor of `EventLoop::run_app`.
|
- Deprecate `EventLoop::run` in favor of `EventLoop::run_app`.
|
||||||
- Deprecate `EventLoopExtRunOnDemand::run_on_demand` in favor of `EventLoop::run_app_on_demand`.
|
- Deprecate `EventLoopExtRunOnDemand::run_on_demand` in favor of `EventLoop::run_app_on_demand`.
|
||||||
|
|
|
@ -373,10 +373,15 @@ impl<'a, 'b> KeyEventResults<'a, 'b> {
|
||||||
|
|
||||||
fn composed_text(&mut self) -> Result<Option<SmolStr>, ()> {
|
fn composed_text(&mut self) -> Result<Option<SmolStr>, ()> {
|
||||||
match self.compose {
|
match self.compose {
|
||||||
ComposeStatus::Accepted(xkb_compose_status::XKB_COMPOSE_COMPOSED) => {
|
ComposeStatus::Accepted(status) => match status {
|
||||||
|
xkb_compose_status::XKB_COMPOSE_COMPOSED => {
|
||||||
let state = self.context.compose_state1.as_mut().unwrap();
|
let state = self.context.compose_state1.as_mut().unwrap();
|
||||||
Ok(state.get_string(self.context.scratch_buffer))
|
Ok(state.get_string(self.context.scratch_buffer))
|
||||||
}
|
}
|
||||||
|
xkb_compose_status::XKB_COMPOSE_COMPOSING
|
||||||
|
| xkb_compose_status::XKB_COMPOSE_CANCELLED => Ok(None),
|
||||||
|
xkb_compose_status::XKB_COMPOSE_NOTHING => Err(()),
|
||||||
|
},
|
||||||
_ => Err(()),
|
_ => Err(()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue