diff -Nru fcitx-qt5-1.2.4/debian/changelog fcitx-qt5-1.2.4/debian/changelog
--- fcitx-qt5-1.2.4/debian/changelog	2022-06-21 13:49:29.000000000 +0800
+++ fcitx-qt5-1.2.4/debian/changelog	2022-07-20 16:59:30.000000000 +0800
@@ -1,3 +1,21 @@
+fcitx-qt5 (1.2.4-ok5) yangtze; urgency=medium
+
+  * 执行平板特性需求脚本
+
+ -- litian <litian2@kylinos.cn> Wed, 20 Jul 2022 16:59:30 +0800
+
+fcitx-qt5 (1.2.4-ok4) yangtze; urgency=medium
+
+  * 执行平板特性脚本
+
+ -- litian <litian2@kylinos.cn> Wed, 20 Jul 2022 14:47:30 +0800
+
+fcitx-qt5 (1.2.4-ok3) yangtze; urgency=medium
+
+  * 更新代码,与gitlab保持一致
+
+ -- litian <litian2@kylinos.cn> Wed, 20 Jul 2022 14:18:33 +0800
+
 fcitx-qt5 (1.2.4-ok2) yangtze; urgency=medium
 
   * rebuild
diff -Nru fcitx-qt5-1.2.4/debian/patches/0004-5.patch fcitx-qt5-1.2.4/debian/patches/0004-5.patch
--- fcitx-qt5-1.2.4/debian/patches/0004-5.patch	1970-01-01 08:00:00.000000000 +0800
+++ fcitx-qt5-1.2.4/debian/patches/0004-5.patch	2022-07-20 16:59:30.000000000 +0800
@@ -0,0 +1,432 @@
+From: litian <1819035419@qq.com>
+Date: Wed, 20 Jul 2022 02:25:48 +0000
+Subject: =?utf-8?b?ITUg6Jma5ouf6ZSu55uY5by55Ye65py65Yi25LyY5YyW77ya5peg5aSW?=
+ =?utf-8?b?5o6l6ZSu55uY5oOF5Ya15LiL54K55Ye75omN5Y+v5ZSk6YaS6Jma5ouf6ZSu55uY?=
+ =?utf-8?b?IE1lcmdlIHB1bGwgcmVxdWVzdCAhNSBmcm9tIGxpdGlhbi9vcGVua3lsaW4veWFu?=
+ =?utf-8?b?Z3R6ZQ==?=
+
+---
+ custommade/README.md                               |  27 +++++
+ custommade/productoption.sh                        |  48 +++++++++
+ custommade/tablet/CMakeLists.txt                   |  55 ++++++++++
+ .../qfcitxplatforminputcontext.cpp                 | 116 +++++++++++++++++++--
+ platforminputcontext/qfcitxplatforminputcontext.h  |  44 +++++++-
+ 5 files changed, 282 insertions(+), 8 deletions(-)
+ create mode 100644 custommade/README.md
+ create mode 100755 custommade/productoption.sh
+ create mode 100644 custommade/tablet/CMakeLists.txt
+
+diff --git a/custommade/README.md b/custommade/README.md
+new file mode 100644
+index 0000000..7b4dc0c
+--- /dev/null
++++ b/custommade/README.md
+@@ -0,0 +1,27 @@
++# fcitx-qt5代码维护管理
++###  编写该文档旨在为了统一维护代码,同时确保满足不同的需求
++### 脚本功能介绍
++~~~
++根据不同的需求,来统一维护代码。目前主要功能有:
++1.移动对应的配置文件到相应的fcitx文件目录下。
++2.代码中可使用宏定义来项目维护定制部分
++~~~
++### 需求介绍
++~~~
++tablet需求需要支持平板模式下虚拟键盘的唤醒机制
++~~~
++### 文件功能
++~~~
++1.tablet/CMakeLists.txt     tablet需求中fcitx的工程文件(里面增加了ENABLE_TABLET_CHARACTERISTIC 宏)
++~~~
++### 执行步骤
++~~~
++1.仅当在需要定制需求的时候 执行tabletcharacteristic/productoption.sh脚本文件
++2.参数对应不同需求名称
++例如:./productoption.sh tablet
++后面可以根据需求修改脚本
++~~~
++###  注意事项
++~~~
++1.增加文件需要对照fcitx当前文件目录,在product目录下建立对应目录并对其进行放置
++~~~
+diff --git a/custommade/productoption.sh b/custommade/productoption.sh
+new file mode 100755
+index 0000000..912714d
+--- /dev/null
++++ b/custommade/productoption.sh
+@@ -0,0 +1,48 @@
++#!/bin/sh
++
++productPara=$1
++productNumber=(tablet)
++warringError="Please enter the correct parameters.( tablet )"
++isExist=
++#获取脚本所在的目录
++workdir=$(cd $(dirname $0); pwd)
++# echo $workdir
++
++#参数为空,错误提醒
++if [ ! -n "$productPara" ] ;then
++	echo $warringError
++	exit;
++fi
++
++#遍历参数是否存在productNumber中(参数合法性判断)
++for i in ${productNumber[@]}
++do
++	if [ $i == $productPara ]
++	then
++		isExist="yes"
++		break
++	fi
++done
++
++if [  ! -n "$isExist" ]
++then
++	echo $warringError
++	exit;
++fi
++
++
++
++#对intel单独的定制进行配置
++if [ $productPara = ${productNumber[0]} ]
++then
++	echo ""
++	#将CMakeLists.txt文件拷贝到fcitx目录下,增加宏定义INTEL_PRODUCT_DEBUG
++	cp -rvf $workdir/$productPara/CMakeLists.txt $workdir/../.
++
++	echo ""
++fi
++
++echo "finish..."
++
++
++
+diff --git a/custommade/tablet/CMakeLists.txt b/custommade/tablet/CMakeLists.txt
+new file mode 100644
+index 0000000..2afbcb1
+--- /dev/null
++++ b/custommade/tablet/CMakeLists.txt
+@@ -0,0 +1,55 @@
++cmake_minimum_required(VERSION 3.1)
++
++project(fcitx-qt5)
++
++set(FcitxQt5_VERSION 1.1.0)
++set(REQUIRED_QT_VERSION 5.1.0)
++
++find_package(ECM 1.4.0 REQUIRED NO_MODULE)
++
++set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
++
++option(ENABLE_LIBRARY "Qt library" On)
++option(ENABLE_TABLET_CHARACTERISTIC "tablet product" On)
++if(ENABLE_TABLET_CHARACTERISTIC)
++	add_definitions(-DENABLE_TABLET_CHARACTERISTIC)
++endif()
++include(GNUInstallDirs)
++include(FeatureSummary)
++include(GenerateExportHeader)
++include(CMakePackageConfigHelpers)
++include(ECMSetupVersion)
++include(ECMGenerateHeaders)
++
++include(CheckCXXCompilerFlag)
++
++check_cxx_compiler_flag("-std=c++11" SUPPORT_CXX11)
++
++if(NOT SUPPORT_CXX11)
++    message(FATAL_ERROR "need c++ 11 compatible compiler to compile")
++endif()
++
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
++
++find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Core DBus Widgets Concurrent)
++find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED Private)
++find_package(XKBCommon 0.5.0 REQUIRED COMPONENTS XKBCommon)
++
++if (ENABLE_LIBRARY)
++find_package(Fcitx 4.2.8 REQUIRED)
++find_package(LibIntl REQUIRED)
++endif ()
++
++set(FcitxQt5_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_FULL_INCLUDEDIR}/FcitxQt5)
++
++if (ENABLE_LIBRARY)
++add_subdirectory(dbusaddons)
++add_subdirectory(widgetsaddons)
++add_subdirectory(guiwrapper)
++add_subdirectory(quickphrase-editor)
++add_subdirectory(po)
++endif()
++
++add_subdirectory(platforminputcontext)
++
++feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
+diff --git a/platforminputcontext/qfcitxplatforminputcontext.cpp b/platforminputcontext/qfcitxplatforminputcontext.cpp
+index 8f6a990..23666ee 100644
+--- a/platforminputcontext/qfcitxplatforminputcontext.cpp
++++ b/platforminputcontext/qfcitxplatforminputcontext.cpp
+@@ -31,6 +31,11 @@
+ #include <qpa/qplatformscreen.h>
+ #include <qpa/qwindowsysteminterface.h>
+ 
++#include <stdio.h>
++#include <stdlib.h>
++#include <unistd.h>
++#include <sys/types.h>
++
+ #include "qtkey.h"
+ 
+ #include "fcitxinputcontextproxy.h"
+@@ -100,6 +105,10 @@ QFcitxPlatformInputContext::QFcitxPlatformInputContext()
+                                                     XKB_COMPOSE_STATE_NO_FLAGS)
+                             : 0) {
+     m_watcher->watch();
++    m_keyBoardStatusInfo = new KeyboardStatusInfo();
++    m_inputMethodStatus = new InputMethodStatus();
++    QObject::connect(m_keyBoardStatusInfo->m_iFaceStatusManager,SIGNAL(inputmethod_change_signal(bool)),this,SLOT(dealKeyboardStatus(bool)));
++
+ }
+ 
+ QFcitxPlatformInputContext::~QFcitxPlatformInputContext() {
+@@ -107,6 +116,8 @@ QFcitxPlatformInputContext::~QFcitxPlatformInputContext() {
+     m_watcher->unwatch();
+     cleanUp();
+     delete m_watcher;
++    delete m_keyBoardStatusInfo;
++    delete m_inputMethodStatus;
+ }
+ 
+ void QFcitxPlatformInputContext::cleanUp() {
+@@ -117,6 +128,12 @@ void QFcitxPlatformInputContext::cleanUp() {
+     }
+ }
+ 
++void QFcitxPlatformInputContext::dealKeyboardStatus(bool str)
++{
++    m_keyBoardStatusInfo->m_keyBoardStatus = m_keyBoardStatusInfo->getKeyboardStatus();
++//    iMethod->setInputMethodStatus(SogouKeyboardStatus::IsHide);
++}
++
+ bool QFcitxPlatformInputContext::isValid() const { return true; }
+ 
+ void QFcitxPlatformInputContext::invokeAction(QInputMethod::Action action,
+@@ -265,6 +282,26 @@ void QFcitxPlatformInputContext::update(Qt::InputMethodQueries queries) {
+ }
+ 
+ void QFcitxPlatformInputContext::commit() { QPlatformInputContext::commit(); }
++#ifdef ENABLE_TABLET_CHARACTERISTIC
++void QFcitxPlatformInputContext::showInputPanel()
++{
++    QWindow *window = qApp->focusWindow();
++    if (window == nullptr) {
++        return;
++    }
++    FcitxInputContextProxy *proxy = validICByWindow(window);
++    if (proxy == nullptr) {
++        return;
++    }
++    //替换原有的切换焦点唤醒虚拟键盘的机制
++    //目前没有直接唤醒虚拟键盘的接口,reset会重置输入法内部状态。可以实现再次唤醒虚拟键盘
++    proxy->focusIn();
++    SogouKeyboardStatus status = m_inputMethodStatus->getInputMethodStatus();
++    if (status == SogouKeyboardStatus::IsHide && (m_keyBoardStatusInfo->m_keyBoardStatus == KeyBoardStatus::NonExistKeyboard)) {
++        m_inputMethodStatus->setInputMethodStatus(SogouKeyboardStatus::IsShow);
++    }
++}
++#endif
+ 
+ void QFcitxPlatformInputContext::setFocusObject(QObject *object) {
+     Q_UNUSED(object);
+@@ -275,9 +312,6 @@ void QFcitxPlatformInputContext::setFocusObject(QObject *object) {
+     if (proxy) {
+         if(window)
+         {
+-      //      qDebug()<<Q_FUNC_INFO;
+-      //      qDebug()<<window->winId();
+-      //      qDebug()<<window->objectName();
+             if((m_lastWindow!=window)||!inputMethodAccepted())
+                 proxy->focusOut();
+         }
+@@ -297,7 +331,7 @@ void QFcitxPlatformInputContext::setFocusObject(QObject *object) {
+     }
+ 
+ 
+-    if (proxy)
++    if (proxy && (m_keyBoardStatusInfo->m_keyBoardStatus == KeyBoardStatus::ExistKeyboard))
+         proxy->focusIn();
+     else {
+         createICData(window);
+@@ -359,8 +393,9 @@ void QFcitxPlatformInputContext::createInputContextFinished() {
+     if (proxy->isValid()) {
+         QWindow *window = qApp->focusWindow();
+         if (window && window == w && objectAcceptsInputMethod()) {
+-
+-            proxy->focusIn();
++            if(m_keyBoardStatusInfo->m_keyBoardStatus == KeyBoardStatus::ExistKeyboard) {
++                proxy->focusIn();
++            }
+             cursorRectChanged();
+         }
+     }
+@@ -664,7 +699,9 @@ bool QFcitxPlatformInputContext::filterEvent(const QEvent *event) {
+             }
+         }
+ 
+-        proxy->focusIn();
++        if(m_keyBoardStatusInfo->m_keyBoardStatus == KeyBoardStatus::ExistKeyboard) {
++            proxy->focusIn();
++        }
+ 
+         auto reply =
+             proxy->processKeyEvent(keyval, keycode, state, isRelease,
+@@ -823,4 +860,69 @@ bool QFcitxPlatformInputContext::processCompose(uint keyval, uint state,
+     return true;
+ }
+ 
++
++KeyboardStatusInfo::KeyboardStatusInfo()
++{
++    m_iFaceStatusManager = new QDBusInterface("com.kylin.statusmanager.interface", "/",
++                                                   "com.kylin.statusmanager.interface",QDBusConnection::sessionBus(),this);
++    if (!m_iFaceStatusManager->isValid()) {
++        m_keyBoardStatus = KeyBoardStatus::ExistKeyboard;
++        return;
++    }
++    m_keyBoardStatus = getKeyboardStatus();
++
++}
++KeyboardStatusInfo::~KeyboardStatusInfo()
++{
++    delete m_iFaceStatusManager;
++}
++KeyBoardStatus KeyboardStatusInfo::getKeyboardStatus()
++{
++    QDBusMessage msg = m_iFaceStatusManager->call("get_inputmethod_mode");
++    if (msg.type() == QDBusMessage::MessageType::ErrorMessage) {
++        return KeyBoardStatus::ExistKeyboard;
++    }
++    return (KeyBoardStatus)msg.arguments().at(0).toInt();
++
++}
++InputMethodStatus::InputMethodStatus()
++{
++    QString cSogouDbus = getSogouDbusString();
++    m_iFaceSogouime = new QDBusInterface(cSogouDbus, "/",
++                                                   "com.basesogouimebs_interface_service",QDBusConnection::sessionBus(),this);
++    if (!m_iFaceSogouime->isValid()) {
++        return;
++    }
++}
++InputMethodStatus::~InputMethodStatus()
++{
++    delete m_iFaceSogouime;
++}
++QString InputMethodStatus::getSogouDbusString()
++{
++    QString cSogouDbus = "com.basesogouimebs_service.hotel_";
++    QString uid = QString::number(getuid());
++    QString displayNumber = tr("_") + getenv("DISPLAY");
++    displayNumber.remove(1, 1); // getenv("DISPLAY"); 有冒号 : 所以需要去除;
++    cSogouDbus.append(uid);
++    cSogouDbus.append(displayNumber);
++    return cSogouDbus;
++}
++SogouKeyboardStatus InputMethodStatus::getInputMethodStatus()
++{
++    QDBusMessage msg = m_iFaceSogouime->call("IsKeyboardVisible");
++    if(msg.type() == QDBusMessage::MessageType::ErrorMessage) {
++        return SogouKeyboardStatus::NotExistVirtualKeyboard;
++    }
++    return (SogouKeyboardStatus)msg.arguments().at(0).toInt();
++
++}
++void InputMethodStatus::setInputMethodStatus(bool status)
++{
++    QDBusMessage msg = m_iFaceSogouime->call("ShowKeyboard",status);
++    if(msg.type() == QDBusMessage::MessageType::ErrorMessage) {
++        qWarning()<<"sogou:"<<"keyboard Stauts error";
++    }
++}
++
+ // kate: indent-mode cstyle; space-indent on; indent-width 0;
+diff --git a/platforminputcontext/qfcitxplatforminputcontext.h b/platforminputcontext/qfcitxplatforminputcontext.h
+index 40a6d56..e943773 100644
+--- a/platforminputcontext/qfcitxplatforminputcontext.h
++++ b/platforminputcontext/qfcitxplatforminputcontext.h
+@@ -90,6 +90,16 @@ enum FcitxKeyState {
+     FcitxKeyState_UsedMask = 0x5c001fff
+ };
+ 
++enum KeyBoardStatus{
++    NonExistKeyboard = 0,
++    ExistKeyboard,
++};
++enum SogouKeyboardStatus{
++    IsHide = 0,
++    IsShow,
++    NotExistVirtualKeyboard
++};
++
+ struct FcitxQtICData {
+     FcitxQtICData(FcitxWatcher *watcher)
+         : capability(0), proxy(new FcitxInputContextProxy(watcher, watcher)),
+@@ -153,6 +163,8 @@ struct XkbComposeStateDeleter {
+ };
+ 
+ class FcitxQtInputMethodProxy;
++class KeyboardStatusInfo;
++class InputMethodStatus;
+ 
+ class QFcitxPlatformInputContext : public QPlatformInputContext {
+     Q_OBJECT
+@@ -169,7 +181,9 @@ public:
+     virtual void update(Qt::InputMethodQueries quries) Q_DECL_OVERRIDE;
+     virtual void setFocusObject(QObject *object) Q_DECL_OVERRIDE;
+     virtual QLocale locale() const Q_DECL_OVERRIDE;
+-
++#ifdef ENABLE_TABLET_CHARACTERISTIC
++    virtual void showInputPanel() Q_DECL_OVERRIDE;
++#endif
+ public Q_SLOTS:
+     void cursorRectChanged();
+     void commitString(const QString &str);
+@@ -235,8 +249,36 @@ private:
+     QScopedPointer<struct xkb_compose_state, XkbComposeStateDeleter>
+         m_xkbComposeState;
+     QLocale m_locale;
++    KeyboardStatusInfo *m_keyBoardStatusInfo = nullptr;
++    InputMethodStatus *m_inputMethodStatus = nullptr;
+ private slots:
+     void processKeyEventFinished(QDBusPendingCallWatcher *);
++    void dealKeyboardStatus(bool str);
++};
++
++
++class KeyboardStatusInfo : public QObject
++{
++    Q_OBJECT
++public:
++    KeyboardStatusInfo();
++    ~KeyboardStatusInfo();
++    KeyBoardStatus getKeyboardStatus();
++    KeyBoardStatus m_keyBoardStatus = KeyBoardStatus::ExistKeyboard;
++    QDBusInterface *m_iFaceStatusManager = nullptr;
++
++};
++class InputMethodStatus : public QObject
++{
++    Q_OBJECT
++public:
++    InputMethodStatus();
++    ~InputMethodStatus();
++    QString getSogouDbusString();
++    SogouKeyboardStatus getInputMethodStatus();
++    void setInputMethodStatus(bool status);
++    QDBusInterface *m_iFaceSogouime = nullptr;
++
+ };
+ 
+ #endif // QFCITXPLATFORMINPUTCONTEXT_H
diff -Nru fcitx-qt5-1.2.4/debian/patches/0005-6-reset.patch fcitx-qt5-1.2.4/debian/patches/0005-6-reset.patch
--- fcitx-qt5-1.2.4/debian/patches/0005-6-reset.patch	1970-01-01 08:00:00.000000000 +0800
+++ fcitx-qt5-1.2.4/debian/patches/0005-6-reset.patch	2022-07-20 16:59:30.000000000 +0800
@@ -0,0 +1,139 @@
+From: litian <1819035419@qq.com>
+Date: Wed, 20 Jul 2022 02:44:53 +0000
+Subject: =?utf-8?b?ITYg54K55Ye75ZSk6YaS6Jma5ouf6ZSu55uY6ZyA6KaB5q+P5qyh5L2/?=
+ =?utf-8?b?55SocmVzZXTph43nva7ovpPlhaXms5XnmoTnirbmgIEgTWVyZ2UgcHVsbCByZXF1?=
+ =?utf-8?b?ZXN0ICE2IGZyb20gbGl0aWFuL29wZW5reWxpbi95YW5ndHpl?=
+
+---
+ .../qfcitxplatforminputcontext.cpp                 | 47 +---------------------
+ platforminputcontext/qfcitxplatforminputcontext.h  | 18 ---------
+ 2 files changed, 1 insertion(+), 64 deletions(-)
+
+diff --git a/platforminputcontext/qfcitxplatforminputcontext.cpp b/platforminputcontext/qfcitxplatforminputcontext.cpp
+index 23666ee..d157d99 100644
+--- a/platforminputcontext/qfcitxplatforminputcontext.cpp
++++ b/platforminputcontext/qfcitxplatforminputcontext.cpp
+@@ -106,7 +106,6 @@ QFcitxPlatformInputContext::QFcitxPlatformInputContext()
+                             : 0) {
+     m_watcher->watch();
+     m_keyBoardStatusInfo = new KeyboardStatusInfo();
+-    m_inputMethodStatus = new InputMethodStatus();
+     QObject::connect(m_keyBoardStatusInfo->m_iFaceStatusManager,SIGNAL(inputmethod_change_signal(bool)),this,SLOT(dealKeyboardStatus(bool)));
+ 
+ }
+@@ -117,7 +116,6 @@ QFcitxPlatformInputContext::~QFcitxPlatformInputContext() {
+     cleanUp();
+     delete m_watcher;
+     delete m_keyBoardStatusInfo;
+-    delete m_inputMethodStatus;
+ }
+ 
+ void QFcitxPlatformInputContext::cleanUp() {
+@@ -131,7 +129,6 @@ void QFcitxPlatformInputContext::cleanUp() {
+ void QFcitxPlatformInputContext::dealKeyboardStatus(bool str)
+ {
+     m_keyBoardStatusInfo->m_keyBoardStatus = m_keyBoardStatusInfo->getKeyboardStatus();
+-//    iMethod->setInputMethodStatus(SogouKeyboardStatus::IsHide);
+ }
+ 
+ bool QFcitxPlatformInputContext::isValid() const { return true; }
+@@ -296,10 +293,7 @@ void QFcitxPlatformInputContext::showInputPanel()
+     //替换原有的切换焦点唤醒虚拟键盘的机制
+     //目前没有直接唤醒虚拟键盘的接口,reset会重置输入法内部状态。可以实现再次唤醒虚拟键盘
+     proxy->focusIn();
+-    SogouKeyboardStatus status = m_inputMethodStatus->getInputMethodStatus();
+-    if (status == SogouKeyboardStatus::IsHide && (m_keyBoardStatusInfo->m_keyBoardStatus == KeyBoardStatus::NonExistKeyboard)) {
+-        m_inputMethodStatus->setInputMethodStatus(SogouKeyboardStatus::IsShow);
+-    }
++    proxy->reset();
+ }
+ #endif
+ 
+@@ -885,44 +879,5 @@ KeyBoardStatus KeyboardStatusInfo::getKeyboardStatus()
+     return (KeyBoardStatus)msg.arguments().at(0).toInt();
+ 
+ }
+-InputMethodStatus::InputMethodStatus()
+-{
+-    QString cSogouDbus = getSogouDbusString();
+-    m_iFaceSogouime = new QDBusInterface(cSogouDbus, "/",
+-                                                   "com.basesogouimebs_interface_service",QDBusConnection::sessionBus(),this);
+-    if (!m_iFaceSogouime->isValid()) {
+-        return;
+-    }
+-}
+-InputMethodStatus::~InputMethodStatus()
+-{
+-    delete m_iFaceSogouime;
+-}
+-QString InputMethodStatus::getSogouDbusString()
+-{
+-    QString cSogouDbus = "com.basesogouimebs_service.hotel_";
+-    QString uid = QString::number(getuid());
+-    QString displayNumber = tr("_") + getenv("DISPLAY");
+-    displayNumber.remove(1, 1); // getenv("DISPLAY"); 有冒号 : 所以需要去除;
+-    cSogouDbus.append(uid);
+-    cSogouDbus.append(displayNumber);
+-    return cSogouDbus;
+-}
+-SogouKeyboardStatus InputMethodStatus::getInputMethodStatus()
+-{
+-    QDBusMessage msg = m_iFaceSogouime->call("IsKeyboardVisible");
+-    if(msg.type() == QDBusMessage::MessageType::ErrorMessage) {
+-        return SogouKeyboardStatus::NotExistVirtualKeyboard;
+-    }
+-    return (SogouKeyboardStatus)msg.arguments().at(0).toInt();
+-
+-}
+-void InputMethodStatus::setInputMethodStatus(bool status)
+-{
+-    QDBusMessage msg = m_iFaceSogouime->call("ShowKeyboard",status);
+-    if(msg.type() == QDBusMessage::MessageType::ErrorMessage) {
+-        qWarning()<<"sogou:"<<"keyboard Stauts error";
+-    }
+-}
+ 
+ // kate: indent-mode cstyle; space-indent on; indent-width 0;
+diff --git a/platforminputcontext/qfcitxplatforminputcontext.h b/platforminputcontext/qfcitxplatforminputcontext.h
+index e943773..ecbe0a9 100644
+--- a/platforminputcontext/qfcitxplatforminputcontext.h
++++ b/platforminputcontext/qfcitxplatforminputcontext.h
+@@ -94,11 +94,6 @@ enum KeyBoardStatus{
+     NonExistKeyboard = 0,
+     ExistKeyboard,
+ };
+-enum SogouKeyboardStatus{
+-    IsHide = 0,
+-    IsShow,
+-    NotExistVirtualKeyboard
+-};
+ 
+ struct FcitxQtICData {
+     FcitxQtICData(FcitxWatcher *watcher)
+@@ -250,7 +245,6 @@ private:
+         m_xkbComposeState;
+     QLocale m_locale;
+     KeyboardStatusInfo *m_keyBoardStatusInfo = nullptr;
+-    InputMethodStatus *m_inputMethodStatus = nullptr;
+ private slots:
+     void processKeyEventFinished(QDBusPendingCallWatcher *);
+     void dealKeyboardStatus(bool str);
+@@ -267,18 +261,6 @@ public:
+     KeyBoardStatus m_keyBoardStatus = KeyBoardStatus::ExistKeyboard;
+     QDBusInterface *m_iFaceStatusManager = nullptr;
+ 
+-};
+-class InputMethodStatus : public QObject
+-{
+-    Q_OBJECT
+-public:
+-    InputMethodStatus();
+-    ~InputMethodStatus();
+-    QString getSogouDbusString();
+-    SogouKeyboardStatus getInputMethodStatus();
+-    void setInputMethodStatus(bool status);
+-    QDBusInterface *m_iFaceSogouime = nullptr;
+-
+ };
+ 
+ #endif // QFCITXPLATFORMINPUTCONTEXT_H
diff -Nru fcitx-qt5-1.2.4/debian/patches/0006-8.patch fcitx-qt5-1.2.4/debian/patches/0006-8.patch
--- fcitx-qt5-1.2.4/debian/patches/0006-8.patch	1970-01-01 08:00:00.000000000 +0800
+++ fcitx-qt5-1.2.4/debian/patches/0006-8.patch	2022-07-20 16:59:30.000000000 +0800
@@ -0,0 +1,25 @@
+From: litian <1819035419@qq.com>
+Date: Wed, 20 Jul 2022 06:45:53 +0000
+Subject: =?utf-8?b?ITgg5omn6KGM5bmz5p2/54m55oCn6ZyA5rGC6ISa5pysIE1lcmdlIHB1?=
+ =?utf-8?b?bGwgcmVxdWVzdCAhOCBmcm9tIGxpdGlhbi9vcGVua3lsaW4veWFuZ3R6ZQ==?=
+
+---
+ CMakeLists.txt | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d10bb7f..2afbcb1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -10,7 +10,10 @@ find_package(ECM 1.4.0 REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+ 
+ option(ENABLE_LIBRARY "Qt library" On)
+-
++option(ENABLE_TABLET_CHARACTERISTIC "tablet product" On)
++if(ENABLE_TABLET_CHARACTERISTIC)
++	add_definitions(-DENABLE_TABLET_CHARACTERISTIC)
++endif()
+ include(GNUInstallDirs)
+ include(FeatureSummary)
+ include(GenerateExportHeader)
diff -Nru fcitx-qt5-1.2.4/debian/patches/series fcitx-qt5-1.2.4/debian/patches/series
--- fcitx-qt5-1.2.4/debian/patches/series	2022-06-21 13:49:29.000000000 +0800
+++ fcitx-qt5-1.2.4/debian/patches/series	2022-07-20 16:59:30.000000000 +0800
@@ -1,3 +1,6 @@
 20201223_fix_26729.patch
 20210127_fix_33206.patch
 20211109_fix_73522.patch
+0004-5.patch
+0005-6-reset.patch
+0006-8.patch