18void QWaylandQtTextInputMethodManagerPrivate::text_input_method_manager_v1_get_text_input_method(Resource *resource, uint32_t id,
struct ::wl_resource *seatResource)
20 Q_Q(QWaylandQtTextInputMethodManager);
21 QWaylandCompositor *compositor =
static_cast<QWaylandCompositor *>(q->extensionContainer());
22 QWaylandSeat *seat = QWaylandSeat::fromSeatResource(seatResource);
23 QWaylandQtTextInputMethod *textInput = QWaylandQtTextInputMethod::findIn(seat);
24 if (textInput ==
nullptr)
25 textInput =
new QWaylandQtTextInputMethod(seat, compositor);
26 textInput->add(resource->client(), id, wl_resource_get_version(resource->handle));
27 QWaylandClient *client = QWaylandClient::fromWlClient(compositor, resource->client());
28 QWaylandClient::TextInputProtocols p = client->textInputProtocols();
29 client->setTextInputProtocols(p.setFlag(QWaylandClient::TextInputProtocol::QtTextInputMethodV1));
31 if (!textInput->isInitialized())
32 textInput->initialize();
76void QWaylandQtTextInputMethodManager::initialize()
78 Q_D(QWaylandQtTextInputMethodManager);
80 QWaylandCompositorExtensionTemplate::initialize();
81 QWaylandCompositor *compositor =
static_cast<QWaylandCompositor *>(extensionContainer());
82 if (compositor ==
nullptr) {
83 qWarning() <<
"Failed to find QWaylandCompositor when initializing QWaylandQtTextInputMethodManager";
87 d->init(compositor->display(), 1);