static void display_add_input(struct display *d, uint32_t id) { struct input *input; input = malloc(sizeof *input); if (input == NULL) return; memset(input, 0, sizeof *input); input->display = d; input->input_device = wl_input_device_create(d->display, id); input->pointer_focus = NULL; input->keyboard_focus = NULL; wl_list_insert(d->input_list.prev, &input->link); wl_input_device_add_listener(input->input_device, &input_device_listener, input); wl_input_device_set_user_data(input->input_device, input); }
QWaylandInputDevice::QWaylandInputDevice(struct wl_display *display, uint32_t id) : mDisplay(display) , mInputDevice(wl_input_device_create(display, id, 1)) , mPointerFocus(NULL) , mKeyboardFocus(NULL) , mButtons(0) { wl_input_device_add_listener(mInputDevice, &inputDeviceListener, this); wl_input_device_set_user_data(mInputDevice, this); #ifndef QT_NO_WAYLAND_XKB struct xkb_rule_names names; names.rules = "evdev"; names.model = "pc105"; names.layout = "us"; names.variant = ""; names.options = ""; mXkb = xkb_compile_keymap_from_rules(&names); #endif }