diff --git a/dm/src/display_manager.cpp b/dm/src/display_manager.cpp index bd65da5f9d19cc1725e5f533d7746f7b348cf3c6..7ddd60546b4701480695d6a2267ee4d4851329d4 100644 --- a/dm/src/display_manager.cpp +++ b/dm/src/display_manager.cpp @@ -1837,6 +1837,7 @@ void DisplayManager::Impl::NotifyAvailableAreaChanged(DMRect rect, DisplayId dis } for (auto& listener : availableAreaListeners) { listener->OnAvailableAreaChanged(rect); + listener->OnAvailableAreaChangedByDisplayId(rect, displayId); } std::map>> availableAreaListenersMap; { diff --git a/dm/src/oh_display_manager.cpp b/dm/src/oh_display_manager.cpp index 4f3816a70b6a8517f4bbb1f5b6c29390eca998cf..759885824ccc5727585812ead5294e8fff5d9c9a 100644 --- a/dm/src/oh_display_manager.cpp +++ b/dm/src/oh_display_manager.cpp @@ -38,13 +38,12 @@ public: innerAvailableAreaChangeFunc_ = availableAreaChangeFunc; } - void OnAvailableAreaChanged(DMRect area) + void OnAvailableAreaChangedByDisplayId(const DMRect& area, DisplayId displayId) { if (innerAvailableAreaChangeFunc_ == nullptr) { TLOGE(WmsLogTag::DMS, "[DMNDK] callback is nullptr"); return; } - DisplayId displayId = DisplayManager::GetInstance().GetDefaultDisplayId(); innerAvailableAreaChangeFunc_(displayId); } diff --git a/interfaces/innerkits/dm/display_manager.h b/interfaces/innerkits/dm/display_manager.h index 23e1a728b15556e61c60c3225a95bffb6fbf229f..d4e1470555b893dffc69d7acf69794c581893b5d 100644 --- a/interfaces/innerkits/dm/display_manager.h +++ b/interfaces/innerkits/dm/display_manager.h @@ -173,6 +173,14 @@ public: * @param DMRect area. */ virtual void OnAvailableAreaChanged(DMRect area) {} + + /** + * @brief Notify listeners when available area changed by displayId. + * + * @param DMRect area. + * @param DisplayId displayId. + */ + virtual void OnAvailableAreaChangedByDisplayId(const DMRect& area, DisplayId displayId) {} }; /**