diff options
author | girard@chromium.org <girard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-07 21:39:28 +0000 |
---|---|---|
committer | girard@chromium.org <girard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-07 21:39:28 +0000 |
commit | deadc49b961ff4c6d8e7bb5a4d890542f54179f1 (patch) | |
tree | c618225a26f84b1a8b4d3b276e5b96da323d5c72 /ui | |
parent | ac04b2cf07ffa643c8b2f1a11b28455b010c49fe (diff) | |
download | chromium_src-deadc49b961ff4c6d8e7bb5a4d890542f54179f1.zip chromium_src-deadc49b961ff4c6d8e7bb5a4d890542f54179f1.tar.gz chromium_src-deadc49b961ff4c6d8e7bb5a4d890542f54179f1.tar.bz2 |
Add HiDPI flag for Windows.
The flag is currently disabled by default.
BUG=243445
Review URL: https://chromiumcodereview.appspot.com/16196008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204939 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui')
-rw-r--r-- | ui/base/ui_base_switches.cc | 3 | ||||
-rw-r--r-- | ui/base/ui_base_switches.h | 1 | ||||
-rw-r--r-- | ui/base/win/dpi.cc | 27 |
3 files changed, 23 insertions, 8 deletions
diff --git a/ui/base/ui_base_switches.cc b/ui/base/ui_base_switches.cc index f4c3b7c..51a9546 100644 --- a/ui/base/ui_base_switches.cc +++ b/ui/base/ui_base_switches.cc @@ -39,6 +39,9 @@ const char kEnableTouchEditing[] = "enable-touch-editing"; // Enables the Views textfield on Windows. const char kEnableViewsTextfield[] = "enable-views-textfield"; +// Enables/Disables High DPI support (windows) +const char kHighDPISupport[] = "high-dpi-support"; + // Overrides the device scale factor for the browser UI and the contents. const char kForceDeviceScaleFactor[] = "force-device-scale-factor"; diff --git a/ui/base/ui_base_switches.h b/ui/base/ui_base_switches.h index da5fd4b..dfaed583 100644 --- a/ui/base/ui_base_switches.h +++ b/ui/base/ui_base_switches.h @@ -24,6 +24,7 @@ UI_EXPORT extern const char kEnableTouchDragDrop[]; UI_EXPORT extern const char kEnableTouchEditing[]; UI_EXPORT extern const char kEnableViewsTextfield[]; UI_EXPORT extern const char kForceDeviceScaleFactor[]; +UI_EXPORT extern const char kHighDPISupport[]; UI_EXPORT extern const char kHighlightMissingScaledResources[]; UI_EXPORT extern const char kLang[]; UI_EXPORT extern const char kLocalePak[]; diff --git a/ui/base/win/dpi.cc b/ui/base/win/dpi.cc index 75d63bb..9b2db5b 100644 --- a/ui/base/win/dpi.cc +++ b/ui/base/win/dpi.cc @@ -5,10 +5,11 @@ #include "ui/base/win/dpi.h" #include <windows.h> - +#include "base/command_line.h" #include "base/win/scoped_hdc.h" #include "ui/base/layout.h" #include "base/win/registry.h" +#include "ui/base/ui_base_switches.h" #include "ui/gfx/display.h" #include "ui/gfx/point_conversions.h" #include "ui/gfx/rect_conversions.h" @@ -19,16 +20,26 @@ namespace { int kDefaultDPIX = 96; int kDefaultDPIY = 96; +bool IsHighDPIEnabled() { + // Default is disabled. + if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kHighDPISupport)) { + return CommandLine::ForCurrentProcess()->GetSwitchValueASCII( + switches::kHighDPISupport).compare("1") == 0; + } + return false; +} + float GetDeviceScaleFactorImpl() { #if defined(ENABLE_HIDPI) - float scale = gfx::Display::HasForceDeviceScaleFactor() ? - gfx::Display::GetForcedDeviceScaleFactor() : ui::GetDPIScale(); - // Quantize to nearest supported scale factor. - scale = ui::GetScaleFactorScale(ui::GetScaleFactorFromScale(scale)); - return scale; -#else - return 1.0f; + if (IsHighDPIEnabled()) { + float scale = gfx::Display::HasForceDeviceScaleFactor() ? + gfx::Display::GetForcedDeviceScaleFactor() : ui::GetDPIScale(); + // Quantize to nearest supported scale factor. + scale = ui::GetScaleFactorScale(ui::GetScaleFactorFromScale(scale)); + return scale; + } #endif + return 1.0f; } BOOL IsProcessDPIAwareWrapper() { |