diff --git a/interfaces/innerkits/wm/wm_common.h b/interfaces/innerkits/wm/wm_common.h index 38983761..0f02f6c9 100644 --- a/interfaces/innerkits/wm/wm_common.h +++ b/interfaces/innerkits/wm/wm_common.h @@ -107,6 +107,7 @@ enum class WindowSizeChangeReason : uint32_t { RECOVER, ROTATION, DRAG, + DRAG_END, RESIZE, MOVE, }; diff --git a/wm/src/window_impl.cpp b/wm/src/window_impl.cpp index 46d62f92..6f39136e 100644 --- a/wm/src/window_impl.cpp +++ b/wm/src/window_impl.cpp @@ -1041,7 +1041,11 @@ void WindowImpl::EndMoveOrDragWindow(int32_t pointId) if (pointId != startPointerId_) { return; } - startDragFlag_ = false; + + if (startDragFlag_) { + UpdateRect(GetRect(), WindowSizeChangeReason::DRAG_END); + startDragFlag_ = false; + } startMoveFlag_ = false; pointEventStarted_ = false; }