diff --git a/service/window_manager/src/input_windows_manager.cpp b/service/window_manager/src/input_windows_manager.cpp index ecbadb06d7bbfeaa6c2329ec5d4f5a4f15996da0..fe16546864370c738359b270a6452356f08319f9 100644 --- a/service/window_manager/src/input_windows_manager.cpp +++ b/service/window_manager/src/input_windows_manager.cpp @@ -1956,6 +1956,7 @@ void InputWindowsManager::DispatchPointerCancel(int32_t displayId) auto filter = InputHandler->GetFilterHandler(); CHKPV(filter); filter->HandlePointerEvent(pointerEvent); + InitMouseDownInfo(); } void InputWindowsManager::UpdatePointerDrawingManagerWindowInfo() @@ -4018,6 +4019,8 @@ int32_t InputWindowsManager::UpdateMouseTarget(std::shared_ptr poi } if (pointerEvent->GetPointerAction() == PointerEvent::POINTER_ACTION_PULL_UP) { MMI_HILOGD("Clear extra data"); + InitMouseDownInfo(); + mouseDownEventId_ = -1; ClearExtraData(); } if (pointerItem.GetMoveFlag() == POINTER_MOVEFLAG) {