支持传递窗口位置信息

Signed-off-by: m00911899 <mashaojie6@huawei.com>
This commit is contained in:
m00911899
2026-05-29 11:29:12 +08:00
parent bc936f15aa
commit f5f58d31f7
2 changed files with 16 additions and 2 deletions
@@ -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
@@ -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;