diff options
author | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-16 19:56:47 +0000 |
---|---|---|
committer | derat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-16 19:56:47 +0000 |
commit | 5d99ee6aabc1dc165374898d0fcd4d114e4e1698 (patch) | |
tree | f6dd48eb0397711a04300a62210eeb3e8be5046f /ash | |
parent | 1d07e92b5484360b2bbf8855c2ed29f5684c114c (diff) | |
download | chromium_src-5d99ee6aabc1dc165374898d0fcd4d114e4e1698.zip chromium_src-5d99ee6aabc1dc165374898d0fcd4d114e4e1698.tar.gz chromium_src-5d99ee6aabc1dc165374898d0fcd4d114e4e1698.tar.bz2 |
chromeos: Include mode details in OutputSnapshot.
This updates OutputConfigurator to include modes'
resolutions and interlaced-ness in OutputSnapshot structs,
and to pass OutputSnapshots to observers after the display
mode is changed.
A following change will update ash's
DisplayChangeObserverX11 class to use OutputSnapshots
instead of asking the X server for the same information via
XRandR.
BUG=266113
Review URL: https://chromiumcodereview.appspot.com/22871010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218069 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash')
-rw-r--r-- | ash/display/display_change_observer_x11.cc | 9 | ||||
-rw-r--r-- | ash/display/display_change_observer_x11.h | 4 | ||||
-rw-r--r-- | ash/display/display_util_x11.cc | 2 | ||||
-rw-r--r-- | ash/display/output_configurator_animation.cc | 3 | ||||
-rw-r--r-- | ash/display/output_configurator_animation.h | 4 | ||||
-rw-r--r-- | ash/touch/touch_observer_hud.cc | 3 | ||||
-rw-r--r-- | ash/touch/touch_observer_hud.h | 4 |
7 files changed, 21 insertions, 8 deletions
diff --git a/ash/display/display_change_observer_x11.cc b/ash/display/display_change_observer_x11.cc index 860a5ea..2802e6c 100644 --- a/ash/display/display_change_observer_x11.cc +++ b/ash/display/display_change_observer_x11.cc @@ -27,6 +27,9 @@ namespace ash { namespace internal { + +using chromeos::OutputConfigurator; + namespace { // The DPI threshold to detect high density screen. @@ -89,7 +92,9 @@ bool DisplayChangeObserverX11::GetResolutionForDisplayId(int64 display_id, return true; } -void DisplayChangeObserverX11::OnDisplayModeChanged() { +void DisplayChangeObserverX11::OnDisplayModeChanged( + const std::vector<OutputConfigurator::OutputSnapshot>& outputs) { + // TODO(derat): Use |outputs| instead of re-fetching information. XRRScreenResources* screen_resources = XRRGetScreenResources(xdisplay_, x_root_window_); std::map<XID, XRRCrtcInfo*> crtc_info_map; @@ -131,7 +136,7 @@ void DisplayChangeObserverX11::OnDisplayModeChanged() { continue; } const XRRModeInfo* mode = - chromeos::FindModeInfo(screen_resources, crtc_info->mode); + chromeos::FindXRRModeInfo(screen_resources, crtc_info->mode); if (!mode) { LOG(WARNING) << "Could not find a mode for the output: output_index=" << output_index; diff --git a/ash/display/display_change_observer_x11.h b/ash/display/display_change_observer_x11.h index 6781151..33fafb3 100644 --- a/ash/display/display_change_observer_x11.h +++ b/ash/display/display_change_observer_x11.h @@ -36,7 +36,9 @@ class DisplayChangeObserverX11 int* height) const OVERRIDE; // Overriden from chromeos::OutputConfigurator::Observer: - virtual void OnDisplayModeChanged() OVERRIDE; + virtual void OnDisplayModeChanged( + const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) + OVERRIDE; // Overriden from ShellObserver: virtual void OnAppTerminating() OVERRIDE; diff --git a/ash/display/display_util_x11.cc b/ash/display/display_util_x11.cc index e662ce2..984ed53 100644 --- a/ash/display/display_util_x11.cc +++ b/ash/display/display_util_x11.cc @@ -63,7 +63,7 @@ std::vector<Resolution> GetResolutionList( for (int i = 0; i < output_info->nmode; i++) { RRMode mode = output_info->modes[i]; - const XRRModeInfo* info = chromeos::FindModeInfo(screen_resources, mode); + const XRRModeInfo* info = chromeos::FindXRRModeInfo(screen_resources, mode); DCHECK(info); // Just ignore bad entry on Release build. if (!info) diff --git a/ash/display/output_configurator_animation.cc b/ash/display/output_configurator_animation.cc index 6161bef..5e58497 100644 --- a/ash/display/output_configurator_animation.cc +++ b/ash/display/output_configurator_animation.cc @@ -203,7 +203,8 @@ void OutputConfiguratorAnimation::StartFadeInAnimation() { } } -void OutputConfiguratorAnimation::OnDisplayModeChanged() { +void OutputConfiguratorAnimation::OnDisplayModeChanged( + const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) { if (!hiding_layers_.empty()) StartFadeInAnimation(); } diff --git a/ash/display/output_configurator_animation.h b/ash/display/output_configurator_animation.h index 3fefe92..42a66ef 100644 --- a/ash/display/output_configurator_animation.h +++ b/ash/display/output_configurator_animation.h @@ -42,7 +42,9 @@ class ASH_EXPORT OutputConfiguratorAnimation protected: // chromeos::OutputConfigurator::Observer overrides: - virtual void OnDisplayModeChanged() OVERRIDE; + virtual void OnDisplayModeChanged( + const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) + OVERRIDE; virtual void OnDisplayModeChangeFailed( chromeos::OutputState failed_new_state) OVERRIDE; diff --git a/ash/touch/touch_observer_hud.cc b/ash/touch/touch_observer_hud.cc index 3daeba6..9dcccd3 100644 --- a/ash/touch/touch_observer_hud.cc +++ b/ash/touch/touch_observer_hud.cc @@ -104,7 +104,8 @@ void TouchObserverHUD::OnDisplayRemoved(const gfx::Display& old_display) { } #if defined(OS_CHROMEOS) -void TouchObserverHUD::OnDisplayModeChanged() { +void TouchObserverHUD::OnDisplayModeChanged( + const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) { // Clear touch HUD for any change in display mode (single, dual extended, dual // mirrored, ...). Clear(); diff --git a/ash/touch/touch_observer_hud.h b/ash/touch/touch_observer_hud.h index 850bc5e..70e23a7 100644 --- a/ash/touch/touch_observer_hud.h +++ b/ash/touch/touch_observer_hud.h @@ -67,7 +67,9 @@ class ASH_EXPORT TouchObserverHUD #if defined(OS_CHROMEOS) // Overriden from chromeos::OutputConfigurator::Observer. - virtual void OnDisplayModeChanged() OVERRIDE; + virtual void OnDisplayModeChanged( + const std::vector<chromeos::OutputConfigurator::OutputSnapshot>& outputs) + OVERRIDE; #endif // defined(OS_CHROMEOS) // Overriden form DisplayController::Observer. |