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

Unified Diff: ash/display/display_change_observer_chromeos.cc

Issue 227593011: Modifies the threshold for hidpi displays. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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_change_observer_chromeos.cc
diff --git a/ash/display/display_change_observer_chromeos.cc b/ash/display/display_change_observer_chromeos.cc
index 862b22867097cfa2a44c1927f89caebf8e94c21a..02578e8444c05fd90c8562d73f4a7efa9f484e15 100644
--- a/ash/display/display_change_observer_chromeos.cc
+++ b/ash/display/display_change_observer_chromeos.cc
@@ -34,6 +34,14 @@ namespace {
// Higher DPI than this will use device_scale_factor=2.
const unsigned int kHighDensityDPIThreshold = 170;
+// The HiDPI threshold for bigger (usually external) monitors. Lower threshold
oshima 2014/04/08 20:39:47 "Large" is probably better term. Can you update th
Jun Mukai 2014/04/09 20:20:07 Done.
+// makes sense for bigger monitors, because such monitors should be located
+// farther from the user's face usually. See http://crbug.com/348279
+const unsigned int kHighDensityDPIThresholdBigger = 150;
+
+// The width threshold in mm for "bigger" monitors.
+const int kBiggerDisplayWidthThresholdMM = 500;
+
// 1 inch in mm.
const float kInchInMm = 25.4f;
@@ -48,6 +56,19 @@ struct DisplayModeSorter {
}
};
+bool ShouldBeHiDPI(const gfx::Size& physical_size,
oshima 2014/04/08 20:39:47 Can you change this to return scale factor (like G
Jun Mukai 2014/04/09 20:20:07 Done.
+ const ui::DisplayMode& mode_info) {
+ if (ui::IsDisplaySizeBlackListed(physical_size))
+ return false;
+
+ const unsigned int dpi = (kInchInMm * mode_info.size().width() /
+ physical_size.width());
+ const unsigned int threshold =
+ (physical_size.width() >= kBiggerDisplayWidthThresholdMM) ?
+ kHighDensityDPIThresholdBigger : kHighDensityDPIThreshold;
+ return dpi > threshold;
+}
+
} // namespace
// static
@@ -134,11 +155,9 @@ void DisplayChangeObserver::OnDisplayModeChanged(
continue;
float device_scale_factor = 1.0f;
- if (!ui::IsDisplaySizeBlackListed(output.display->physical_size()) &&
- (kInchInMm * mode_info->size().width() /
- output.display->physical_size().width()) > kHighDensityDPIThreshold) {
+ if (ShouldBeHiDPI(output.display->physical_size(), *mode_info))
device_scale_factor = 2.0f;
- }
+
gfx::Rect display_bounds(output.display->origin(), mode_info->size());
std::vector<DisplayMode> display_modes = GetDisplayModeList(output);

Powered by Google App Engine
This is Rietveld 408576698