From f5f58d31f74ff5dc557da43b4c167aeae01f68fd Mon Sep 17 00:00:00 2001 From: m00911899 Date: Fri, 29 May 2026 11:29:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BC=A0=E9=80=92=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E4=BD=8D=E7=BD=AE=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: m00911899 --- interface/innerkits/include/mem_mgr_window_info.h | 12 ++++++++++++ interface/innerkits/src/mem_mgr_window_info.cpp | 6 ++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/interface/innerkits/include/mem_mgr_window_info.h b/interface/innerkits/include/mem_mgr_window_info.h index beee925..31fcaca 100644 --- a/interface/innerkits/include/mem_mgr_window_info.h +++ b/interface/innerkits/include/mem_mgr_window_info.h @@ -41,6 +41,17 @@ public: */ MemMgrWindowInfo(uint32_t winId, int32_t pid, int32_t uid, bool visibility) : windowId_(winId), pid_(pid), uid_(uid), isVisible_(visibility) {}; + /** + * @brief Construct of MemMgrWindowInfo. + * + * @param winId Window id. + * @param pid Process id. + * @param uid User id. + * @param visibility True means window is visible, false means the opposite. + * @param lastUsedPosition Window display position. + */ + MemMgrWindowInfo(uint32_t winId, int32_t pid, int32_t uid, bool visibility, std::string lastUsedPosition) + : windowId_(winId), pid_(pid), uid_(uid), isVisible_(visibility), lastUsedPosition_(lastUsedPosition) {}; /** * @brief Deconstruct of MemMgrWindowInfo. */ @@ -65,6 +76,7 @@ public: int32_t pid_ {0}; int32_t uid_ {0}; bool isVisible_ {false}; + std::string lastUsedPosition_ {""}; }; } // namespace Memory } // namespace OHOS diff --git a/interface/innerkits/src/mem_mgr_window_info.cpp b/interface/innerkits/src/mem_mgr_window_info.cpp index a66105f..9d1d446 100644 --- a/interface/innerkits/src/mem_mgr_window_info.cpp +++ b/interface/innerkits/src/mem_mgr_window_info.cpp @@ -25,7 +25,8 @@ const std::string TAG = "MemMgrWindowInfo"; bool MemMgrWindowInfo::Marshalling(Parcel &parcel) const { return parcel.WriteUint32(windowId_) && parcel.WriteInt32(pid_) && - parcel.WriteInt32(uid_) && parcel.WriteBool(isVisible_); + parcel.WriteInt32(uid_) && parcel.WriteBool(isVisible_) && + parcel.WriteString(lastUsedPosition_); } MemMgrWindowInfo* MemMgrWindowInfo::Unmarshalling(Parcel &parcel) @@ -36,7 +37,8 @@ MemMgrWindowInfo* MemMgrWindowInfo::Unmarshalling(Parcel &parcel) return nullptr; } bool res = parcel.ReadUint32(memMgrWindowInfo->windowId_) && parcel.ReadInt32(memMgrWindowInfo->pid_) && - parcel.ReadInt32(memMgrWindowInfo->uid_) && parcel.ReadBool(memMgrWindowInfo->isVisible_); + parcel.ReadInt32(memMgrWindowInfo->uid_) && parcel.ReadBool(memMgrWindowInfo->isVisible_) && + parcel.ReadString(memMgrWindowInfo->lastUsedPosition_); if (!res) { delete memMgrWindowInfo; return nullptr;