| Index: ui/display/manager/display_manager_utilities.cc
|
| diff --git a/ui/display/manager/display_manager_utilities.cc b/ui/display/manager/display_manager_utilities.cc
|
| index 7a6b77ddd38fe56dc9814811f075b6202007b6cb..bc5be3a69eba8012422a9dc812e6e79a642082b0 100644
|
| --- a/ui/display/manager/display_manager_utilities.cc
|
| +++ b/ui/display/manager/display_manager_utilities.cc
|
| @@ -20,33 +20,51 @@ namespace {
|
| // 800, 1024, 1280, 1440, 1600 and 1920 pixel width respectively on
|
| // 2560 pixel width 2x density display. Please see crbug.com/233375
|
| // for the full list of resolutions.
|
| -const float kUIScalesFor2x[] = {0.5f, 0.625f, 0.8f, 1.0f,
|
| +constexpr float kUIScalesFor2x[] = {0.5f, 0.625f, 0.8f, 1.0f,
|
| 1.125f, 1.25f, 1.5f, 2.0f};
|
| -const float kUIScalesFor1_25x[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.25f};
|
| -const float kUIScalesFor1280[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.125f};
|
| -const float kUIScalesFor1366[] = {0.5f, 0.6f, 0.75f, 1.0f, 1.125f};
|
| +constexpr float kUIScalesFor1_25x[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.25f};
|
| +constexpr float kUIScalesFor1280[] = {0.5f, 0.625f, 0.8f, 1.0f, 1.125f};
|
| +constexpr float kUIScalesFor1366[] = {0.5f, 0.6f, 0.75f, 1.0f, 1.125f};
|
| +
|
| +// The default UI scales for the above display densities.
|
| +constexpr float kDefaultUIScaleFor2x = 1.0f;
|
| +constexpr float kDefaultUIScaleFor1_25x = 0.8f;
|
| +constexpr float kDefaultUIScaleFor1280 = 1.0f;
|
| +constexpr float kDefaultUIScaleFor1366 = 1.0f;
|
| +
|
| +// Encapsulates the list of UI scales and the default one.
|
| +struct DisplayUIScales {
|
| + std::vector<float> scales;
|
| + float default_scale;
|
| +};
|
| +
|
|
|
| -std::vector<float> GetScalesForDisplay(
|
| +DisplayUIScales GetScalesForDisplay(
|
| const scoped_refptr<display::ManagedDisplayMode>& native_mode) {
|
| #define ASSIGN_ARRAY(v, a) v.assign(a, a + arraysize(a))
|
|
|
| - std::vector<float> ret;
|
| + DisplayUIScales ret;
|
| if (native_mode->device_scale_factor() == 2.0f) {
|
| - ASSIGN_ARRAY(ret, kUIScalesFor2x);
|
| + ASSIGN_ARRAY(ret.scales, kUIScalesFor2x);
|
| + ret.default_scale = kDefaultUIScaleFor2x;
|
| return ret;
|
| } else if (native_mode->device_scale_factor() == 1.25f) {
|
| - ASSIGN_ARRAY(ret, kUIScalesFor1_25x);
|
| + ASSIGN_ARRAY(ret.scales, kUIScalesFor1_25x);
|
| + ret.default_scale = kDefaultUIScaleFor1_25x;
|
| return ret;
|
| }
|
| switch (native_mode->size().width()) {
|
| case 1280:
|
| - ASSIGN_ARRAY(ret, kUIScalesFor1280);
|
| + ASSIGN_ARRAY(ret.scales, kUIScalesFor1280);
|
| + ret.default_scale = kDefaultUIScaleFor1280;
|
| break;
|
| case 1366:
|
| - ASSIGN_ARRAY(ret, kUIScalesFor1366);
|
| + ASSIGN_ARRAY(ret.scales, kUIScalesFor1366);
|
| + ret.default_scale = kDefaultUIScaleFor1366;
|
| break;
|
| default:
|
| - ASSIGN_ARRAY(ret, kUIScalesFor1280);
|
| + ASSIGN_ARRAY(ret.scales, kUIScalesFor1280);
|
| + ret.default_scale = kDefaultUIScaleFor1280;
|
| #if defined(OS_CHROMEOS)
|
| if (base::SysInfo::IsRunningOnChromeOS())
|
| NOTREACHED() << "Unknown resolution:" << native_mode->size().ToString();
|
| @@ -89,11 +107,13 @@ CreateInternalManagedDisplayModeList(
|
| float native_ui_scale = (native_mode->device_scale_factor() == 1.25f)
|
| ? 1.0f
|
| : native_mode->device_scale_factor();
|
| - for (float ui_scale : GetScalesForDisplay(native_mode)) {
|
| + const DisplayUIScales display_ui_scales = GetScalesForDisplay(native_mode);
|
| + for (float ui_scale : display_ui_scales.scales) {
|
| scoped_refptr<ManagedDisplayMode> mode(new ManagedDisplayMode(
|
| native_mode->size(), native_mode->refresh_rate(),
|
| native_mode->is_interlaced(), ui_scale == native_ui_scale, ui_scale,
|
| native_mode->device_scale_factor()));
|
| + mode->set_is_default(ui_scale == display_ui_scales.default_scale);
|
| display_mode_list.push_back(mode);
|
| }
|
| return display_mode_list;
|
|
|