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

Unified Diff: ui/display/win/screen_win.cc

Issue 2959423003: color: Read all displays' color profiles on Windows (Closed)
Patch Set: Remove unused Initialize method Created 3 years, 5 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/display/win/screen_win.h ('k') | ui/display/win/screen_win_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/display/win/screen_win.cc
diff --git a/ui/display/win/screen_win.cc b/ui/display/win/screen_win.cc
index f585989bb0b70cff6c1d3b3ac2d2cbeed66da1bf..8e121b08a9fd9a67192737e53aacb0613c57d31b 100644
--- a/ui/display/win/screen_win.cc
+++ b/ui/display/win/screen_win.cc
@@ -211,10 +211,14 @@ gfx::Point ScalePointRelative(const gfx::Point& from_origin,
} // namespace
-ScreenWin::ScreenWin() {
+ScreenWin::ScreenWin() : ScreenWin(true) {}
+
+ScreenWin::ScreenWin(bool initialize)
+ : color_profile_reader_(new ColorProfileReader(this)) {
DCHECK(!g_screen_win_instance);
g_screen_win_instance = this;
- Initialize();
+ if (initialize)
+ Initialize();
}
ScreenWin::~ScreenWin() {
@@ -457,6 +461,7 @@ void ScreenWin::UpdateFromDisplayInfos(
}
void ScreenWin::Initialize() {
+ color_profile_reader_->UpdateIfNeeded();
singleton_hwnd_observer_.reset(
new gfx::SingletonHwndObserver(
base::Bind(&ScreenWin::OnWndProc, base::Unretained(this))));
@@ -499,11 +504,16 @@ void ScreenWin::OnWndProc(HWND hwnd,
!(message == WM_SETTINGCHANGE && wparam == SPI_SETWORKAREA))
return;
+ color_profile_reader_->UpdateIfNeeded();
std::vector<Display> old_displays = std::move(displays_);
UpdateFromDisplayInfos(GetDisplayInfosFromSystem());
change_notifier_.NotifyDisplaysChanged(old_displays, displays_);
}
+void ScreenWin::OnColorProfilesChanged() {
+ // TODO(ccameron): Re-build the display list here.
+}
+
ScreenWinDisplay ScreenWin::GetScreenWinDisplayNearestHWND(HWND hwnd)
const {
return GetScreenWinDisplay(MonitorInfoFromWindow(hwnd,
« no previous file with comments | « ui/display/win/screen_win.h ('k') | ui/display/win/screen_win_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698