summaryrefslogtreecommitdiffstats
path: root/winit/src/program/state.rs
diff options
context:
space:
mode:
authorLibravatar KENZ <KENZ.gelsoft@gmail.com>2025-01-10 07:12:31 +0900
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2025-02-02 17:44:13 +0100
commit7db5256b720c3ecbe7c1cce7a1b47fd03151e03a (patch)
treeccf08e3f76e27d0871185b786ece83f970dddc77 /winit/src/program/state.rs
parent599d8b560bec8036c5ddda62a7bf0a540bdec396 (diff)
downloadiced-7db5256b720c3ecbe7c1cce7a1b47fd03151e03a.tar.gz
iced-7db5256b720c3ecbe7c1cce7a1b47fd03151e03a.tar.bz2
iced-7db5256b720c3ecbe7c1cce7a1b47fd03151e03a.zip
Draft `input_method` support
Diffstat (limited to '')
-rw-r--r--winit/src/program/state.rs14
1 files changed, 13 insertions, 1 deletions
diff --git a/winit/src/program/state.rs b/winit/src/program/state.rs
index e883d04a..2b5710ac 100644
--- a/winit/src/program/state.rs
+++ b/winit/src/program/state.rs
@@ -4,7 +4,7 @@ use crate::core::{Color, Size};
use crate::graphics::Viewport;
use crate::program::Program;
-use winit::event::{Touch, WindowEvent};
+use winit::event::{Ime, Touch, WindowEvent};
use winit::window::Window;
use std::fmt::{Debug, Formatter};
@@ -22,6 +22,7 @@ where
modifiers: winit::keyboard::ModifiersState,
theme: P::Theme,
style: theme::Style,
+ preedit: String,
}
impl<P: Program> Debug for State<P>
@@ -73,6 +74,7 @@ where
modifiers: winit::keyboard::ModifiersState::default(),
theme,
style,
+ preedit: String::default(),
}
}
@@ -136,6 +138,11 @@ where
self.style.text_color
}
+ /// TODO
+ pub fn preedit(&self) -> String {
+ self.preedit.clone()
+ }
+
/// Processes the provided window event and updates the [`State`] accordingly.
pub fn update(
&mut self,
@@ -179,6 +186,11 @@ where
WindowEvent::ModifiersChanged(new_modifiers) => {
self.modifiers = new_modifiers.state();
}
+ WindowEvent::Ime(ime) => {
+ if let Ime::Preedit(text, _) = ime {
+ self.preedit = text.clone();
+ }
+ }
#[cfg(feature = "debug")]
WindowEvent::KeyboardInput {
event: