diff --git a/src/frontend/dbusfrontend/dbusfrontend.cpp b/src/frontend/dbusfrontend/dbusfrontend.cpp index 8e056e9b..944647e0 100644 --- a/src/frontend/dbusfrontend/dbusfrontend.cpp +++ b/src/frontend/dbusfrontend/dbusfrontend.cpp @@ -129,10 +129,12 @@ public: return method(std::move(message)); }); - setClientControlVirtualkeyboardVisibility( - getArgument(args, "clientControlVirtualkeyboardVisibility", + setClientControlVirtualkeyboardShow( + getArgument(args, "clientControlVirtualkeyboardShow", + "false") == "true"); + setClientControlVirtualkeyboardHide( + getArgument(args, "clientControlVirtualkeyboardHide", "false") == "true"); - created(); setFocusGroup( diff --git a/src/lib/fcitx/inputcontext.cpp b/src/lib/fcitx/inputcontext.cpp index adfbaf28..4df8d232 100644 --- a/src/lib/fcitx/inputcontext.cpp +++ b/src/lib/fcitx/inputcontext.cpp @@ -163,14 +163,24 @@ void InputContext::hideVirtualKeyboard() const { return instance->userInterfaceManager().hideVirtualKeyboard(); } -bool InputContext::clientControlVirtualkeyboardVisibility() const { +bool InputContext::clientControlVirtualkeyboardShow() const { FCITX_D(); - return d->clientControlVirtualkeyboardVisibility_; + return d->clientControlVirtualkeyboardShow_; } -void InputContext::setClientControlVirtualkeyboardVisibility(bool show) { +void InputContext::setClientControlVirtualkeyboardShow(bool show) { FCITX_D(); - d->clientControlVirtualkeyboardVisibility_ = show; + d->clientControlVirtualkeyboardShow_ = show; +} + +bool InputContext::clientControlVirtualkeyboardHide() const { + FCITX_D(); + return d->clientControlVirtualkeyboardHide_; +} + +void InputContext::setClientControlVirtualkeyboardHide(bool hide) { + FCITX_D(); + d->clientControlVirtualkeyboardHide_ = hide; } CapabilityFlags calculateFlags(CapabilityFlags flag, bool isPreeditEnabled) { diff --git a/src/lib/fcitx/inputcontext.h b/src/lib/fcitx/inputcontext.h index b82df5e7..2a5deaf1 100644 --- a/src/lib/fcitx/inputcontext.h +++ b/src/lib/fcitx/inputcontext.h @@ -267,9 +267,13 @@ public: void hideVirtualKeyboard() const; - bool clientControlVirtualkeyboardVisibility() const; + bool clientControlVirtualkeyboardShow() const; - void setClientControlVirtualkeyboardVisibility(bool show); + void setClientControlVirtualkeyboardShow(bool show); + + bool clientControlVirtualkeyboardHide() const; + + void setClientControlVirtualkeyboardHide(bool show); protected: /** diff --git a/src/lib/fcitx/inputcontext_p.h b/src/lib/fcitx/inputcontext_p.h index 5ba63da3..0ed4b4ba 100644 --- a/src/lib/fcitx/inputcontext_p.h +++ b/src/lib/fcitx/inputcontext_p.h @@ -137,7 +137,8 @@ public: InputPanel inputPanel_; StatusArea statusArea_; bool hasFocus_ = false; - bool clientControlVirtualkeyboardVisibility_ = false; + bool clientControlVirtualkeyboardShow_ = false; + bool clientControlVirtualkeyboardHide_ = false; std::string program_; CapabilityFlags capabilityFlags_; bool isPreeditEnabled_ = true; diff --git a/src/lib/fcitx/instance.cpp b/src/lib/fcitx/instance.cpp index 86223221..c93afba4 100644 --- a/src/lib/fcitx/instance.cpp +++ b/src/lib/fcitx/instance.cpp @@ -988,7 +988,7 @@ Instance::Instance(int argc, char **argv) { if (virtualKeyboardAutoShow()) { auto *inputContext = icEvent.inputContext(); - if (!inputContext->clientControlVirtualkeyboardVisibility()) { + if (!inputContext->clientControlVirtualkeyboardShow()) { inputContext->showVirtualKeyboard(); } } @@ -1030,7 +1030,7 @@ Instance::Instance(int argc, char **argv) { deactivateInputMethod(icEvent); if (virtualKeyboardAutoHide()) { auto *inputContext = icEvent.inputContext(); - if (!inputContext->clientControlVirtualkeyboardVisibility()) { + if (!inputContext->clientControlVirtualkeyboardHide()) { inputContext->hideVirtualKeyboard(); } }