summaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorgirard@chromium.org <girard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 21:39:28 +0000
committergirard@chromium.org <girard@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-07 21:39:28 +0000
commitdeadc49b961ff4c6d8e7bb5a4d890542f54179f1 (patch)
treec618225a26f84b1a8b4d3b276e5b96da323d5c72 /ui
parentac04b2cf07ffa643c8b2f1a11b28455b010c49fe (diff)
downloadchromium_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.cc3
-rw-r--r--ui/base/ui_base_switches.h1
-rw-r--r--ui/base/win/dpi.cc27
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() {