From 0a2141eacd9f5bf9e9e4d22c639cc4b641b260b5 Mon Sep 17 00:00:00 2001 From: liulinsong Date: Sat, 29 Jul 2023 01:49:36 +0800 Subject: [PATCH] Change the default behavior of virtual keyboard visibility (#42) 1. Qt has good support for showing virtual keyboard, so we should disable the default behavior supported by fcitx5 2. Qt has poor support for hiding virtual keyboard, so we should enable the default behavior supported by fcitx5 --- qt4/dbusaddons/fcitxqtinputcontextproxy_p.h | 14 ++++++++++++++ qt5/dbusaddons/fcitxqtinputcontextproxy_p.h | 15 +++++++++++++++ qt6/dbusaddons/fcitxqtinputcontextproxy_p.h | 15 +++++++++++++++ 3 files changed, 44 insertions(+) diff --git a/qt4/dbusaddons/fcitxqtinputcontextproxy_p.h b/qt4/dbusaddons/fcitxqtinputcontextproxy_p.h index 0b19e64..72fabe3 100644 --- a/qt4/dbusaddons/fcitxqtinputcontextproxy_p.h +++ b/qt4/dbusaddons/fcitxqtinputcontextproxy_p.h @@ -112,6 +112,20 @@ public: arg2.setValue(display_); list << arg2; } + // Qt has good support for showing virtual keyboard, so we should + // disable the default behavior supported by fcitx5 + FcitxQtStringKeyValue clientControlVirtualkeyboardShow; + clientControlVirtualkeyboardShow.setKey( + "clientControlVirtualkeyboardShow"); + clientControlVirtualkeyboardShow.setValue("true"); + list << clientControlVirtualkeyboardShow; + // Qt has poor support for hiding virtual keyboard, so we should enable + // the default behavior supported by fcitx5 + FcitxQtStringKeyValue clientControlVirtualkeyboardHide; + clientControlVirtualkeyboardHide.setKey( + "clientControlVirtualkeyboardHide"); + clientControlVirtualkeyboardHide.setValue("false"); + list << clientControlVirtualkeyboardHide; auto result = improxy_->CreateInputContext(list); createInputContextWatcher_ = new QDBusPendingCallWatcher(result); diff --git a/qt5/dbusaddons/fcitxqtinputcontextproxy_p.h b/qt5/dbusaddons/fcitxqtinputcontextproxy_p.h index 03cc7ec..5524f94 100644 --- a/qt5/dbusaddons/fcitxqtinputcontextproxy_p.h +++ b/qt5/dbusaddons/fcitxqtinputcontextproxy_p.h @@ -110,6 +110,21 @@ public: list << arg2; } + // Qt has good support for showing virtual keyboard, so we should + // disable the default behavior supported by fcitx5 + FcitxQtStringKeyValue clientControlVirtualkeyboardShow; + clientControlVirtualkeyboardShow.setKey( + "clientControlVirtualkeyboardShow"); + clientControlVirtualkeyboardShow.setValue("true"); + list << clientControlVirtualkeyboardShow; + // Qt has poor support for hiding virtual keyboard, so we should enable + // the default behavior supported by fcitx5 + FcitxQtStringKeyValue clientControlVirtualkeyboardHide; + clientControlVirtualkeyboardHide.setKey( + "clientControlVirtualkeyboardHide"); + clientControlVirtualkeyboardHide.setValue("false"); + list << clientControlVirtualkeyboardHide; + auto result = improxy_->CreateInputContext(list); createInputContextWatcher_ = new QDBusPendingCallWatcher(result); QObject::connect(createInputContextWatcher_, diff --git a/qt6/dbusaddons/fcitxqtinputcontextproxy_p.h b/qt6/dbusaddons/fcitxqtinputcontextproxy_p.h index 03cc7ec..5524f94 100644 --- a/qt6/dbusaddons/fcitxqtinputcontextproxy_p.h +++ b/qt6/dbusaddons/fcitxqtinputcontextproxy_p.h @@ -110,6 +110,21 @@ public: list << arg2; } + // Qt has good support for showing virtual keyboard, so we should + // disable the default behavior supported by fcitx5 + FcitxQtStringKeyValue clientControlVirtualkeyboardShow; + clientControlVirtualkeyboardShow.setKey( + "clientControlVirtualkeyboardShow"); + clientControlVirtualkeyboardShow.setValue("true"); + list << clientControlVirtualkeyboardShow; + // Qt has poor support for hiding virtual keyboard, so we should enable + // the default behavior supported by fcitx5 + FcitxQtStringKeyValue clientControlVirtualkeyboardHide; + clientControlVirtualkeyboardHide.setKey( + "clientControlVirtualkeyboardHide"); + clientControlVirtualkeyboardHide.setValue("false"); + list << clientControlVirtualkeyboardHide; + auto result = improxy_->CreateInputContext(list); createInputContextWatcher_ = new QDBusPendingCallWatcher(result); QObject::connect(createInputContextWatcher_,