| Index: ui/ozone/platform/dri/native_display_delegate_proxy.cc
|
| diff --git a/ui/ozone/platform/dri/native_display_delegate_proxy.cc b/ui/ozone/platform/dri/native_display_delegate_proxy.cc
|
| index 95600d2464369a701c0cb3f92e6582e50c25f80d..f6e3fbda2d73eaf412bed78c9e560e8e7c3a1506 100644
|
| --- a/ui/ozone/platform/dri/native_display_delegate_proxy.cc
|
| +++ b/ui/ozone/platform/dri/native_display_delegate_proxy.cc
|
| @@ -12,14 +12,40 @@
|
| #include "ui/ozone/common/display_snapshot_proxy.h"
|
| #include "ui/ozone/common/display_util.h"
|
| #include "ui/ozone/common/gpu/ozone_gpu_messages.h"
|
| +#include "ui/ozone/platform/dri/display_manager.h"
|
| #include "ui/ozone/platform/dri/dri_gpu_platform_support_host.h"
|
|
|
| namespace ui {
|
|
|
| +namespace {
|
| +
|
| +class DriDisplaySnapshotProxy : public DisplaySnapshotProxy {
|
| + public:
|
| + DriDisplaySnapshotProxy(const DisplaySnapshot_Params& params,
|
| + DisplayManager* display_manager)
|
| + : DisplaySnapshotProxy(params), display_manager_(display_manager) {
|
| + display_manager_->RegisterDisplay(this);
|
| + }
|
| +
|
| + virtual ~DriDisplaySnapshotProxy() {
|
| + display_manager_->UnregisterDisplay(this);
|
| + }
|
| +
|
| + private:
|
| + DisplayManager* display_manager_; // Not owned.
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(DriDisplaySnapshotProxy);
|
| +};
|
| +
|
| +} // namespace
|
| +
|
| NativeDisplayDelegateProxy::NativeDisplayDelegateProxy(
|
| DriGpuPlatformSupportHost* proxy,
|
| - DeviceManager* device_manager)
|
| - : proxy_(proxy), device_manager_(device_manager) {
|
| + DeviceManager* device_manager,
|
| + DisplayManager* display_manager)
|
| + : proxy_(proxy),
|
| + device_manager_(device_manager),
|
| + display_manager_(display_manager) {
|
| proxy_->RegisterHandler(this);
|
| }
|
|
|
| @@ -153,7 +179,8 @@ void NativeDisplayDelegateProxy::OnUpdateNativeDisplays(
|
| const std::vector<DisplaySnapshot_Params>& displays) {
|
| displays_.clear();
|
| for (size_t i = 0; i < displays.size(); ++i)
|
| - displays_.push_back(new DisplaySnapshotProxy(displays[i]));
|
| + displays_.push_back(
|
| + new DriDisplaySnapshotProxy(displays[i], display_manager_));
|
|
|
| FOR_EACH_OBSERVER(
|
| NativeDisplayObserver, observers_, OnConfigurationChanged());
|
|
|