From acfc65422c24c2a2d3e529dad4bee5ba9bf7611d Mon Sep 17 00:00:00 2001 From: xiahaiqin Date: Thu, 28 Jul 2022 17:19:12 +0800 Subject: [PATCH] add UpdateConfiguration for all windows Signed-off-by: xiahaiqin Change-Id: Ib2c85501c78424cf5a035f6e317f5a88ab945cc6 --- interfaces/innerkits/wm/window.h | 7 +++++++ wm/include/window_impl.h | 1 + wm/src/window.cpp | 5 +++++ wm/src/window_impl.cpp | 8 ++++++++ 4 files changed, 21 insertions(+) diff --git a/interfaces/innerkits/wm/window.h b/interfaces/innerkits/wm/window.h index 956637a3..37ed20a1 100644 --- a/interfaces/innerkits/wm/window.h +++ b/interfaces/innerkits/wm/window.h @@ -192,6 +192,13 @@ public: * @return std::vector> */ static std::vector> GetSubWindow(uint32_t parentId); + + /** + * @brief Update configuration for all windows + * + * @param configuration configuration for app + */ + static void UpdateConfigurationForAll(const std::shared_ptr& configuration); virtual std::shared_ptr GetSurfaceNode() const = 0; virtual const std::shared_ptr GetContext() const = 0; /** diff --git a/wm/include/window_impl.h b/wm/include/window_impl.h index 4408dd18..caf50174 100644 --- a/wm/include/window_impl.h +++ b/wm/include/window_impl.h @@ -101,6 +101,7 @@ public: static sptr GetTopWindowWithContext(const std::shared_ptr& context = nullptr); static sptr GetTopWindowWithId(uint32_t mainWinId); static std::vector> GetSubWindow(uint32_t parantId); + static void UpdateConfigurationForAll(const std::shared_ptr& configuration); virtual std::shared_ptr GetSurfaceNode() const override; virtual Rect GetRect() const override; virtual Rect GetRequestRect() const override; diff --git a/wm/src/window.cpp b/wm/src/window.cpp index a5121246..cda00871 100644 --- a/wm/src/window.cpp +++ b/wm/src/window.cpp @@ -79,6 +79,11 @@ std::vector> Window::GetSubWindow(uint32_t parentId) return WindowImpl::GetSubWindow(parentId); } +void Window::UpdateConfigurationForAll(const std::shared_ptr& configuration) +{ + return WindowImpl::UpdateConfigurationForAll(configuration); +} + bool OccupiedAreaChangeInfo::Marshalling(Parcel& parcel) const { return parcel.WriteInt32(rect_.posX_) && parcel.WriteInt32(rect_.posY_) && diff --git a/wm/src/window_impl.cpp b/wm/src/window_impl.cpp index 6ab6510e..7a5bdf2f 100755 --- a/wm/src/window_impl.cpp +++ b/wm/src/window_impl.cpp @@ -197,6 +197,14 @@ std::vector> WindowImpl::GetSubWindow(uint32_t parentId) return std::vector>(subWindowMap_[parentId].begin(), subWindowMap_[parentId].end()); } +void WindowImpl::UpdateConfigurationForAll(const std::shared_ptr& configuration) +{ + for (auto& winPair : windowMap_) { + auto window = winPair.second.second; + window->UpdateConfiguration(configuration); + } +} + std::shared_ptr WindowImpl::GetSurfaceNode() const { return surfaceNode_;