diff --git a/src/lib/fcitx/instance.cpp b/src/lib/fcitx/instance.cpp index d2e9aa23..4215bf3f 100644 --- a/src/lib/fcitx/instance.cpp +++ b/src/lib/fcitx/instance.cpp @@ -1042,11 +1042,9 @@ Instance::Instance(int argc, char **argv) { activateInputMethod(icEvent); - if (virtualKeyboardAutoShow()) { - auto *inputContext = icEvent.inputContext(); - if (!inputContext->clientControlVirtualkeyboardShow()) { - inputContext->showVirtualKeyboard(); - } + auto *inputContext = icEvent.inputContext(); + if (!inputContext->clientControlVirtualkeyboardShow()) { + inputContext->showVirtualKeyboard(); } if (!d->globalConfig_.showInputMethodInformationWhenFocusIn() || @@ -1091,11 +1089,10 @@ Instance::Instance(int argc, char **argv) { d->lastUnFocusedProgram_ = icEvent.inputContext()->program(); d->lastUnFocusedIc_ = icEvent.inputContext()->watch(); deactivateInputMethod(icEvent); - if (virtualKeyboardAutoHide()) { - auto *inputContext = icEvent.inputContext(); - if (!inputContext->clientControlVirtualkeyboardHide()) { - inputContext->hideVirtualKeyboard(); - } + + auto *inputContext = icEvent.inputContext(); + if (!inputContext->clientControlVirtualkeyboardHide()) { + inputContext->hideVirtualKeyboard(); } })); d->eventWatchers_.emplace_back(d->watchEvent( diff --git a/src/lib/fcitx/instance_p.h b/src/lib/fcitx/instance_p.h index 4676d89a..541a976c 100644 --- a/src/lib/fcitx/instance_p.h +++ b/src/lib/fcitx/instance_p.h @@ -219,9 +219,9 @@ class InstancePrivate : public QPtrHolder { std::string lastGroup_; - bool virtualKeyboardAutoShow_ = true; + bool virtualKeyboardAutoShow_ = false; - bool virtualKeyboardAutoHide_ = true; + bool virtualKeyboardAutoHide_ = false; VirtualKeyboardFunctionMode virtualKeyboardFunctionMode_ = VirtualKeyboardFunctionMode::Full; diff --git a/src/lib/fcitx/userinterfacemanager.cpp b/src/lib/fcitx/userinterfacemanager.cpp index fa9e2698..19178b09 100644 --- a/src/lib/fcitx/userinterfacemanager.cpp +++ b/src/lib/fcitx/userinterfacemanager.cpp @@ -333,6 +333,11 @@ bool UserInterfaceManager::isVirtualKeyboardVisible() const { void UserInterfaceManager::showVirtualKeyboard() const { FCITX_D(); + auto *instance = d->addonManager_->instance(); + if (!instance->virtualKeyboardAutoShow()) { + return; + } + auto *ui = d->ui_; if (ui == nullptr || ui->addonInfo() == nullptr || ui->addonInfo()->uiType() != UIType::OnScreenKeyboard) { @@ -346,6 +351,11 @@ void UserInterfaceManager::showVirtualKeyboard() const { void UserInterfaceManager::hideVirtualKeyboard() const { FCITX_D(); + auto *instance = d->addonManager_->instance(); + if (!instance->virtualKeyboardAutoHide()) { + return; + } + auto *ui = d->ui_; if (ui == nullptr || ui->addonInfo() == nullptr || ui->addonInfo()->uiType() != UIType::OnScreenKeyboard) {