static void input_method_deactivate(void *data, struct input_method *input_method, struct input_method_context *context) { struct simple_im *keyboard = data; if (!keyboard->context) return; input_method_context_destroy(keyboard->context); keyboard->context = NULL; }
static void input_method_activate(void *data, struct input_method *input_method, struct input_method_context *context) { struct virtual_keyboard *keyboard = data; if (keyboard->context) input_method_context_destroy(keyboard->context); if (keyboard->preedit_string) free(keyboard->preedit_string); keyboard->preedit_string = strdup(""); keyboard->context = context; input_method_context_add_listener(context, &input_method_context_listener, keyboard); }
static void input_method_activate(void *data, struct input_method *input_method, struct input_method_context *context, uint32_t serial) { struct simple_im *keyboard = data; if (keyboard->context) input_method_context_destroy(keyboard->context); keyboard->compose_state = state_normal; keyboard->serial = serial; keyboard->context = context; input_method_context_add_listener(context, &input_method_context_listener, keyboard); keyboard->keyboard = input_method_context_grab_keyboard(context); wl_keyboard_add_listener(keyboard->keyboard, &input_method_keyboard_listener, keyboard); }