@@ -213,17 +213,25 @@ class DBusInputContext1 : public InputContext,
213213
214214 void updateClientSideUIImpl () override {
215215 auto *instance = im_->instance ();
216- auto preedit = instance->outputFilter (this , inputPanel ().preedit ());
217- auto auxUp = instance->outputFilter (this , inputPanel ().auxUp ());
218- auto auxDown = instance->outputFilter (this , inputPanel ().auxDown ());
219- auto candidateList = inputPanel ().candidateList ();
220- int cursorIndex = 0 ;
221216
222217 std::vector<dbus::DBusStruct<std::string, int >> preeditStrings;
223218 std::vector<dbus::DBusStruct<std::string, int >> auxUpStrings;
224219 std::vector<dbus::DBusStruct<std::string, int >> auxDownStrings;
225220 std::vector<dbus::DBusStruct<std::string, std::string>> candidates;
226221
222+ if (instance->inputMethodMode () == InputMethodMode::OnScreenKeyboard) {
223+ updateClientSideUITo (name_, preeditStrings, -1 , auxUpStrings,
224+ auxDownStrings, candidates, -1 , 0 , false ,
225+ false );
226+ return ;
227+ }
228+
229+ auto preedit = instance->outputFilter (this , inputPanel ().preedit ());
230+ auto auxUp = instance->outputFilter (this , inputPanel ().auxUp ());
231+ auto auxDown = instance->outputFilter (this , inputPanel ().auxDown ());
232+ auto candidateList = inputPanel ().candidateList ();
233+ int cursorIndex = 0 ;
234+
227235 preeditStrings = buildFormattedTextVector (preedit);
228236 auxUpStrings = buildFormattedTextVector (auxUp);
229237 auxDownStrings = buildFormattedTextVector (auxDown);
@@ -596,6 +604,11 @@ DBusFrontendModule::DBusFrontendModule(Instance *instance)
596604 instance_->inputContextManager ().foreach ([](InputContext *ic) {
597605 if (ic->frontendName () == " dbus" ) {
598606 static_cast <DBusInputContext1 *>(ic)->updateCapability ();
607+ if (ic->capabilityFlags ().test (
608+ CapabilityFlag::ClientSideInputPanel)) {
609+ static_cast <DBusInputContext1 *>(ic)
610+ ->updateClientSideUIImpl ();
611+ }
599612 }
600613 return true ;
601614 });
0 commit comments