diff --git a/service/window_manager/src/input_windows_manager.cpp b/service/window_manager/src/input_windows_manager.cpp index fd51b6bdecd0c0896b404193d37d8d0ce548909e..d88432587f84d5dd98f2f1855fe5571d18cb6514 100644 --- a/service/window_manager/src/input_windows_manager.cpp +++ b/service/window_manager/src/input_windows_manager.cpp @@ -2156,7 +2156,10 @@ int32_t InputWindowsManager::UpdateTouchScreenTarget(std::shared_ptrarea.y, touchWindow->flags, displayId, pointerEvent->GetTargetWindowId(), pointerEvent->GetAgentWindowId(), touchWindow->zOrder); } - + bool gestureInject = false; + if ((pointerEvent->HasFlag(InputEvent::EVENT_FLAG_SIMULATE)) && MMI_GNE(pointerEvent->GetZOrder(), 0.0f)) { + gestureInject = true; + } if (IsNeedDrawPointer(pointerItem)) { if (!IPointerDrawingManager::GetInstance()->GetMouseDisplayState()) { IPointerDrawingManager::GetInstance()->SetMouseDisplayState(true); @@ -2179,7 +2182,9 @@ int32_t InputWindowsManager::UpdateTouchScreenTarget(std::shared_ptrSetMouseDisplayState(false); + if (!gestureInject) { + IPointerDrawingManager::GetInstance()->SetMouseDisplayState(false); + } } } }