diff --git a/common/include/input_hub.cpp b/common/include/input_hub.cpp index 910f2148e9cdd6aca16174203fd9c695f56bba07..4b7fc7eccc7dded2a053818612fb54391f35601b 100644 --- a/common/include/input_hub.cpp +++ b/common/include/input_hub.cpp @@ -221,27 +221,7 @@ bool InputHub::IsTouchPad(const InputDevice &inputDevice) void InputHub::MatchAndDealEvent(Device *device, const RawEvent &event) { // Deal key state - if (event.type == EV_KEY && event.code != BTN_TOOL_FINGER && event.value == KEY_DOWN_STATE) { - DInputState::GetInstance().AddKeyDownState(event); - RecordChangeEventLog(event); - } - - if (event.type == EV_KEY && event.value == KEY_UP_STATE) { - DInputState::GetInstance().RemoveKeyDownState(event); - RecordChangeEventLog(event); - } - - if (event.type == EV_KEY && event.value == KEY_REPEAT) { - DInputState::GetInstance().CheckAndSetLongPressedKeyOrder(event); - } - - if (event.type == EV_ABS && (event.code == ABS_MT_POSITION_X || event.code == ABS_X)) { - DInputState::GetInstance().RefreshABSPosition(event.descriptor, event.value, -1); - } - - if (event.type == EV_ABS && (event.code == ABS_MT_POSITION_Y || event.code == ABS_Y)) { - DInputState::GetInstance().RefreshABSPosition(event.descriptor, -1, event.value); - } + DealKeyEvent(event); if (IsTouchPad(device) && event.type == EV_KEY && event.code == BTN_MOUSE && event.value == KEY_UP_STATE && !DInputState::GetInstance().IsDhIdDown(event.descriptor)) { @@ -265,6 +245,27 @@ void InputHub::MatchAndDealEvent(Device *device, const RawEvent &event) } } +void InputHub::DealKeyEvent(const RawEvent &event) +{ + if (event.type == EV_KEY && event.code != BTN_TOOL_FINGER && event.value == KEY_DOWN_STATE) { + DInputState::GetInstance().AddKeyDownState(event); + RecordChangeEventLog(event); + } + if (event.type == EV_KEY && event.value == KEY_UP_STATE) { + DInputState::GetInstance().RemoveKeyDownState(event); + RecordChangeEventLog(event); + } + if (event.type == EV_KEY && event.value == KEY_REPEAT) { + DInputState::GetInstance().CheckAndSetLongPressedKeyOrder(event); + } + if (event.type == EV_ABS && (event.code == ABS_MT_POSITION_X || event.code == ABS_X)) { + DInputState::GetInstance().RefreshABSPosition(event.descriptor, event.value, -1); + } + if (event.type == EV_ABS && (event.code == ABS_MT_POSITION_Y || event.code == ABS_Y)) { + DInputState::GetInstance().RefreshABSPosition(event.descriptor, -1, event.value); + } +} + void InputHub::RecordDeviceChangeStates(Device *device, struct input_event readBuffer[], const size_t count) { bool isTouchEvent = false; diff --git a/common/include/input_hub.h b/common/include/input_hub.h index f7f56f8dbd563e4cc23645f483939d526b1676dc..e8bc03e7c227741be04a84c4690f9d95f46a1f1a 100644 --- a/common/include/input_hub.h +++ b/common/include/input_hub.h @@ -182,6 +182,7 @@ private: */ void RecordDeviceChangeStates(Device *device, struct input_event readBuffer[], const size_t count); void MatchAndDealEvent(Device *device, const RawEvent &event); + void DealKeyEvent(const RawEvent &event); /* * Scan the input device node and save info. */ diff --git a/services/sink/inputcollector/src/distributed_input_collector.cpp b/services/sink/inputcollector/src/distributed_input_collector.cpp index e5b0fc6ba26692fbca9d11fee628236a6578d379..27c80938fa0f38e5527cf41bfdbc706cc2a2e69c 100644 --- a/services/sink/inputcollector/src/distributed_input_collector.cpp +++ b/services/sink/inputcollector/src/distributed_input_collector.cpp @@ -116,7 +116,7 @@ void DistributedInputCollector::StartCollectEventsThread() return; } size_t count = inputHub_->StartCollectInputEvents(mEventBuffer, INPUT_EVENT_BUFFER_SIZE); - if (count <= 0) { + if (count == 0) { continue; }