Use an enum for ime_state

This commit is contained in:
Kovid Goyal
2021-03-23 10:42:07 +05:30
parent 11268ffa16
commit 84dcf8fd27
6 changed files with 30 additions and 20 deletions

View File

@@ -1073,7 +1073,7 @@ is_ascii_control_char(char x) {
if (input_source_changed) {
debug_key(@"Input source changed, clearing pre-edit text and resetting deadkey state\n");
glfw_keyevent.text = NULL;
glfw_keyevent.ime_state = 1;
glfw_keyevent.ime_state = GLFW_IME_PREEDIT_CHANGED;
window->ns.deadKeyState = 0;
_glfwInputKeyboard(window, &glfw_keyevent); // clear pre-edit text
}
@@ -1110,14 +1110,14 @@ is_ascii_control_char(char x) {
// 0x75 is the delete key which needs to be ignored during a compose sequence
debug_key(@"Sending pre-edit text for dead key (text: %@ markedText: %@).\n", @(format_text(_glfw.ns.text)), markedText);
glfw_keyevent.text = [[markedText string] UTF8String];
glfw_keyevent.ime_state = 1;
glfw_keyevent.ime_state = GLFW_IME_PREEDIT_CHANGED;
_glfwInputKeyboard(window, &glfw_keyevent); // update pre-edit text
return;
}
if (in_compose_sequence) {
debug_key(@"Clearing pre-edit text at end of compose sequence\n");
glfw_keyevent.text = NULL;
glfw_keyevent.ime_state = 1;
glfw_keyevent.ime_state = GLFW_IME_PREEDIT_CHANGED;
_glfwInputKeyboard(window, &glfw_keyevent); // clear pre-edit text
}
}
@@ -1127,11 +1127,11 @@ is_ascii_control_char(char x) {
if (!window->ns.deadKeyState) {
if ([self hasMarkedText]) {
glfw_keyevent.text = [[markedText string] UTF8String];
glfw_keyevent.ime_state = 1;
glfw_keyevent.ime_state = GLFW_IME_PREEDIT_CHANGED;
_glfwInputKeyboard(window, &glfw_keyevent); // update pre-edit text
} else if (previous_has_marked_text) {
glfw_keyevent.text = NULL;
glfw_keyevent.ime_state = 1;
glfw_keyevent.ime_state = GLFW_IME_PREEDIT_CHANGED;
_glfwInputKeyboard(window, &glfw_keyevent); // clear pre-edit text
}
if (([self hasMarkedText] || previous_has_marked_text) && !_glfw.ns.text[0]) {
@@ -1140,7 +1140,7 @@ is_ascii_control_char(char x) {
}
}
glfw_keyevent.text = _glfw.ns.text;
glfw_keyevent.ime_state = 0;
glfw_keyevent.ime_state = GLFW_IME_NONE;
add_alternate_keys(&glfw_keyevent, event);
_glfwInputKeyboard(window, &glfw_keyevent);
}