static void registry_handle_global(void *data, struct wl_registry *registry, uint32_t name, const char *interface, uint32_t version) { struct simple_im *keyboard = data; if (!strcmp(interface, "input_method")) { keyboard->input_method = wl_registry_bind(registry, name, &input_method_interface, 1); input_method_add_listener(keyboard->input_method, &input_method_listener, keyboard); } }
static void global_handler(struct display *display, uint32_t name, const char *interface, uint32_t version, void *data) { struct virtual_keyboard *keyboard = data; if (!strcmp(interface, "input_panel")) { keyboard->input_panel = display_bind(display, name, &input_panel_interface, 1); } else if (!strcmp(interface, "input_method")) { keyboard->input_method = display_bind(display, name, &input_method_interface, 1); input_method_add_listener(keyboard->input_method, &input_method_listener, keyboard); } }