use repose_core::{ImePurposeHint, KeyboardCapitalization};
use winit::window::{ImePurpose, Window};
pub(crate) fn map_ime_purpose(hint: ImePurposeHint) -> ImePurpose {
match hint {
ImePurposeHint::Password => ImePurpose::Password,
ImePurposeHint::Normal
| ImePurposeHint::Email
| ImePurposeHint::Url
| ImePurposeHint::Phone
| ImePurposeHint::Number => ImePurpose::Normal,
}
}
pub(crate) fn set_ime_for_textfield(window: &Window, is_textfield: bool) {
set_ime_for_textfield_ex(
window,
is_textfield,
ImePurposeHint::Normal,
true,
KeyboardCapitalization::Unspecified,
);
}
pub(crate) fn set_ime_for_textfield_ex(
window: &Window,
is_textfield: bool,
purpose: ImePurposeHint,
_auto_correct: bool,
_capitalization: KeyboardCapitalization,
) {
if is_textfield {
window.set_ime_allowed(true);
window.set_ime_purpose(map_ime_purpose(purpose));
} else {
window.set_ime_allowed(false);
}
}