diff --git a/interfaces/innerkits/wm/window.h b/interfaces/innerkits/wm/window.h index 07e04893..1d2c9ab4 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 ffe88a80..c9e21f90 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 f21020b2..ab78683c 100755 --- a/wm/src/window_impl.cpp +++ b/wm/src/window_impl.cpp @@ -198,6 +198,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_;