适配特殊物理按键组合

Signed-off-by: zhouyongfei <zhouyongfei@huawei.com>
This commit is contained in:
zhouyongfei
2022-01-25 21:34:19 +08:00
parent 1730948767
commit 0928ed4bb8
2 changed files with 16 additions and 3 deletions
@@ -91,6 +91,7 @@ namespace MiscServices {
int mSelectOldEnd = 0;
int mSelectNewBegin = 0;
int mSelectNewEnd = 0;
int mSpecialKeyPress = 0;
static std::mutex instanceLock_;
static sptr<InputMethodController> instance_;
@@ -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);