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

Unified Diff: ash/display/display_info.cc

Issue 289583002: Lock rotation when screen is manually rotated. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Define sources for rotation Created 6 years, 7 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
Index: ash/display/display_info.cc
diff --git a/ash/display/display_info.cc b/ash/display/display_info.cc
index 873691de2bee01a0fb6bcdd85b7cc9473b9d52bf..23bf349914ebd77b51941932ffa930d4030a4868 100644
--- a/ash/display/display_info.cc
+++ b/ash/display/display_info.cc
@@ -156,7 +156,7 @@ DisplayInfo DisplayInfo::CreateFromSpecWithID(const std::string& spec,
DisplayInfo display_info(
id, base::StringPrintf("Display-%d", static_cast<int>(id)), has_overscan);
display_info.set_device_scale_factor(device_scale_factor);
- display_info.set_rotation(rotation);
+ display_info.SetRotation(rotation, ui::USER);
display_info.set_configured_ui_scale(ui_scale);
display_info.SetBounds(bounds_in_native);
display_info.set_display_modes(display_modes);
@@ -177,7 +177,7 @@ DisplayInfo DisplayInfo::CreateFromSpecWithID(const std::string& spec,
DisplayInfo::DisplayInfo()
: id_(gfx::Display::kInvalidDisplayID),
has_overscan_(false),
- rotation_(gfx::Display::ROTATE_0),
+ current_rotation_(gfx::Display::ROTATE_0),
touch_support_(gfx::Display::TOUCH_SUPPORT_UNKNOWN),
touch_device_id_(0),
device_scale_factor_(1.0f),
@@ -193,7 +193,7 @@ DisplayInfo::DisplayInfo(int64 id,
: id_(id),
name_(name),
has_overscan_(has_overscan),
- rotation_(gfx::Display::ROTATE_0),
+ current_rotation_(gfx::Display::ROTATE_0),
touch_support_(gfx::Display::TOUCH_SUPPORT_UNKNOWN),
touch_device_id_(0),
device_scale_factor_(1.0f),
@@ -230,7 +230,8 @@ void DisplayInfo::Copy(const DisplayInfo& native_info) {
// or unit tests. Don't copy if this native_info came from
// DisplayChangeObserver.
if (!native_info.native()) {
- rotation_ = native_info.rotation_;
+ current_rotation_ = native_info.current_rotation_;
+ rotations_ = native_info.rotations_;
configured_ui_scale_ = native_info.configured_ui_scale_;
color_profile_ = native_info.color_profile();
}
@@ -248,6 +249,17 @@ void DisplayInfo::SetBounds(const gfx::Rect& new_bounds_in_native) {
UpdateDisplaySize();
}
+gfx::Display::Rotation DisplayInfo::GetRotation(ui::RotationSource source) {
+ return rotations_[source];
+}
+
+void DisplayInfo::SetRotation(gfx::Display::Rotation rotation,
+ ui::RotationSource source) {
+ rotations_[source] = rotation;
+ current_rotation_ = rotation;
+}
+
+
float DisplayInfo::GetEffectiveDeviceScaleFactor() const {
if (allow_upgrade_to_high_dpi && configured_ui_scale_ < 1.0f &&
device_scale_factor_ == 1.0f) {
@@ -278,8 +290,8 @@ void DisplayInfo::UpdateDisplaySize() {
overscan_insets_in_dip_.Set(0, 0, 0, 0);
}
- if (rotation_ == gfx::Display::ROTATE_90 ||
- rotation_ == gfx::Display::ROTATE_270)
+ if (current_rotation_ == gfx::Display::ROTATE_90 ||
+ current_rotation_ == gfx::Display::ROTATE_270)
size_in_pixel_.SetSize(size_in_pixel_.height(), size_in_pixel_.width());
gfx::SizeF size_f(size_in_pixel_);
size_f.Scale(GetEffectiveUIScale());
@@ -295,7 +307,7 @@ gfx::Insets DisplayInfo::GetOverscanInsetsInPixel() const {
}
std::string DisplayInfo::ToString() const {
- int rotation_degree = static_cast<int>(rotation_) * 90;
+ int rotation_degree = static_cast<int>(current_rotation_) * 90;
return base::StringPrintf(
"DisplayInfo[%lld] native bounds=%s, size=%s, scale=%f, "
"overscan=%s, rotation=%d, ui-scale=%f, touchscreen=%s, "

Powered by Google App Engine
This is Rietveld 408576698