From 0928ed4bb8f5da5ad6dc9c5e66e2e5b9760fa7ad Mon Sep 17 00:00:00 2001 From: zhouyongfei Date: Tue, 25 Jan 2022 21:34:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=80=82=E9=85=8D=E7=89=B9=E6=AE=8A?= =?UTF-8?q?=E7=89=A9=E7=90=86=E6=8C=89=E9=94=AE=E7=BB=84=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhouyongfei --- .../include/input_method_controller.h | 1 + .../src/input_method_controller.cpp | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/frameworks/inputmethod_controller/include/input_method_controller.h b/frameworks/inputmethod_controller/include/input_method_controller.h index 4557fdfb3..39c870b12 100644 --- a/frameworks/inputmethod_controller/include/input_method_controller.h +++ b/frameworks/inputmethod_controller/include/input_method_controller.h @@ -91,6 +91,7 @@ namespace MiscServices { int mSelectOldEnd = 0; int mSelectNewBegin = 0; int mSelectNewEnd = 0; + int mSpecialKeyPress = 0; static std::mutex instanceLock_; static sptr instance_; diff --git a/frameworks/inputmethod_controller/src/input_method_controller.cpp b/frameworks/inputmethod_controller/src/input_method_controller.cpp index a51d85fae..4ee90a7c5 100644 --- a/frameworks/inputmethod_controller/src/input_method_controller.cpp +++ b/frameworks/inputmethod_controller/src/input_method_controller.cpp @@ -357,11 +357,23 @@ using namespace MessageID; if (mImms == nullptr) { return false; } + int32_t code = keyEvent->GetKeyCode(); + int32_t status = keyEvent->GetKeyAction(); + if (mSpecialKeyPress != 0) { + if ((code == MMI::KeyEvent::KEYCODE_CTRL_LEFT || code == MMI::KeyEvent::KEYCODE_CTRL_RIGHT) && status == MMI::KeyEvent::KEY_ACTION_UP) { + mSpecailKeyPress--; + } + return false; + } + if ((code == MMI::KeyEvent::KEYCODE_CTRL_LEFT || code == MMI::KeyEvent::KEYCODE_CTRL_RIGHT) && status == MMI::KeyEvent::KEY_ACTION_DOWN) { + mSpecialKeyPress++; + return false; + } MessageParcel data; if (!(data.WriteInterfaceToken(mImms->GetDescriptor()) - &&data.WriteRemoteObject(mClient->AsObject().GetRefPtr()) - &&data.WriteInt32(keyEvent->GetKeyCode()) - &&data.WriteInt32(keyEvent->GetKeyAction()))) { + && data.WriteRemoteObject(mClient->AsObject().GetRefPtr()) + && data.WriteInt32(keyEvent->GetKeyCode()) + && data.WriteInt32(keyEvent->GetKeyAction()))) { return false; } mImms->DispatchKey(data); -- Gitee From 77ba013fe386536fda337668d8c78df3b90baad3 Mon Sep 17 00:00:00 2001 From: zhouyongfei Date: Tue, 25 Jan 2022 22:14:40 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhouyongfei --- .../inputmethod_controller/include/input_method_controller.h | 2 +- .../inputmethod_controller/src/input_method_controller.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/inputmethod_controller/include/input_method_controller.h b/frameworks/inputmethod_controller/include/input_method_controller.h index 39c870b12..0a6ec3b92 100644 --- a/frameworks/inputmethod_controller/include/input_method_controller.h +++ b/frameworks/inputmethod_controller/include/input_method_controller.h @@ -91,7 +91,7 @@ namespace MiscServices { int mSelectOldEnd = 0; int mSelectNewBegin = 0; int mSelectNewEnd = 0; - int mSpecialKeyPress = 0; + int32_t mSpecialKeyPress = 0; static std::mutex instanceLock_; static sptr instance_; diff --git a/frameworks/inputmethod_controller/src/input_method_controller.cpp b/frameworks/inputmethod_controller/src/input_method_controller.cpp index 4ee90a7c5..b9f10940c 100644 --- a/frameworks/inputmethod_controller/src/input_method_controller.cpp +++ b/frameworks/inputmethod_controller/src/input_method_controller.cpp @@ -361,7 +361,7 @@ using namespace MessageID; int32_t status = keyEvent->GetKeyAction(); if (mSpecialKeyPress != 0) { if ((code == MMI::KeyEvent::KEYCODE_CTRL_LEFT || code == MMI::KeyEvent::KEYCODE_CTRL_RIGHT) && status == MMI::KeyEvent::KEY_ACTION_UP) { - mSpecailKeyPress--; + mSpecialKeyPress--; } return false; } -- Gitee