Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: ui/ozone/platform/dri/native_display_delegate_proxy.cc

Issue 611423002: [WIP][Ozone] Support external touchscreens (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ozone-touchscreen
Patch Set: . Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/ozone/platform/dri/native_display_delegate_proxy.h ('k') | ui/ozone/platform/dri/ozone_platform_dri.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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());
« no previous file with comments | « ui/ozone/platform/dri/native_display_delegate_proxy.h ('k') | ui/ozone/platform/dri/ozone_platform_dri.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698