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