17QWaylandInputMethodControl::QWaylandInputMethodControl(QWaylandSurface *surface)
18 : QObject(*
new QWaylandInputMethodControlPrivate(surface), surface)
20 connect(d_func()->compositor, &QWaylandCompositor::defaultSeatChanged,
21 this, &QWaylandInputMethodControl::defaultSeatChanged);
25 QWaylandTextInputV3 *textInputV3 = d_func()->textInputV3();
27 connect(textInputV3, &QWaylandTextInputV3::surfaceEnabled,
this, &QWaylandInputMethodControl::surfaceEnabled);
28 connect(textInputV3, &QWaylandTextInputV3::surfaceDisabled,
this, &QWaylandInputMethodControl::surfaceDisabled);
29 connect(textInputV3, &QWaylandTextInputV3::updateInputMethod,
this, &QWaylandInputMethodControl::updateInputMethod);
32 QWaylandQtTextInputMethod *textInputMethod = d_func()->textInputMethod();
33 if (textInputMethod) {
34 connect(textInputMethod, &QWaylandQtTextInputMethod::surfaceEnabled,
this, &QWaylandInputMethodControl::surfaceEnabled);
35 connect(textInputMethod, &QWaylandQtTextInputMethod::surfaceDisabled,
this, &QWaylandInputMethodControl::surfaceDisabled);
36 connect(textInputMethod, &QWaylandQtTextInputMethod::updateInputMethod,
this, &QWaylandInputMethodControl::updateInputMethod);
42 Q_D(
const QWaylandInputMethodControl);
45 if (textInput !=
nullptr && textInput->focus() == d->surface)
46 return textInput->inputMethodQuery(query, argument);
49 if (textInputV3 !=
nullptr && textInputV3->focus() == d->surface)
50 return textInputV3->inputMethodQuery(query, argument);
53 if (textInputMethod && textInputMethod->focusedSurface() == d->surface)
54 return textInputMethod->inputMethodQuery(query, argument);
111 Q_D(QWaylandInputMethodControl);
113 if (d->surface == surface)
116 d->surface = surface;
121 setEnabled((textInput && textInput->isSurfaceEnabled(d->surface))
122 || (textInputV3 && textInputV3->isSurfaceEnabled(d->surface))
123 || (textInputMethod && textInputMethod->isSurfaceEnabled(d->surface)));
131 connect(textInput, &QWaylandTextInput::surfaceEnabled,
this, &QWaylandInputMethodControl::surfaceEnabled, Qt::UniqueConnection);
132 connect(textInput, &QWaylandTextInput::surfaceDisabled,
this, &QWaylandInputMethodControl::surfaceDisabled, Qt::UniqueConnection);
133 connect(textInput, &QWaylandTextInput::updateInputMethod,
this, &QWaylandInputMethodControl::updateInputMethod, Qt::UniqueConnection);