Index: ui/gfx/win/dpi.cc |
diff --git a/ui/gfx/win/dpi.cc b/ui/gfx/win/dpi.cc |
index a9352a817acfaf05221f9d0d4e96cf690657e4aa..6ea9ba829688f2c9d03cdc1a24bd9fa581f1139d 100644 |
--- a/ui/gfx/win/dpi.cc |
+++ b/ui/gfx/win/dpi.cc |
@@ -6,8 +6,6 @@ |
#include <windows.h> |
#include "base/win/scoped_hdc.h" |
-#include "base/win/windows_version.h" |
-#include "base/win/registry.h" |
#include "ui/gfx/display.h" |
#include "ui/gfx/point_conversions.h" |
#include "ui/gfx/rect_conversions.h" |
@@ -20,16 +18,6 @@ int kDefaultDPIY = 96; |
bool force_highdpi_for_testing = false; |
-BOOL IsProcessDPIAwareWrapper() { |
- typedef BOOL(WINAPI *IsProcessDPIAwarePtr)(VOID); |
- IsProcessDPIAwarePtr is_process_dpi_aware_func = |
- reinterpret_cast<IsProcessDPIAwarePtr>( |
- GetProcAddress(GetModuleHandleA("user32.dll"), "IsProcessDPIAware")); |
- if (is_process_dpi_aware_func) |
- return is_process_dpi_aware_func(); |
- return FALSE; |
-} |
- |
float g_device_scale_factor = 0.0f; |
float GetUnforcedDeviceScaleFactor() { |
@@ -41,67 +29,6 @@ float GetUnforcedDeviceScaleFactor() { |
static_cast<float>(kDefaultDPIX); |
} |
-// Duplicated from Win8.1 SDK ShellScalingApi.h |
-typedef enum PROCESS_DPI_AWARENESS { |
- PROCESS_DPI_UNAWARE = 0, |
- PROCESS_SYSTEM_DPI_AWARE = 1, |
- PROCESS_PER_MONITOR_DPI_AWARE = 2 |
-} PROCESS_DPI_AWARENESS; |
- |
-typedef enum MONITOR_DPI_TYPE { |
- MDT_EFFECTIVE_DPI = 0, |
- MDT_ANGULAR_DPI = 1, |
- MDT_RAW_DPI = 2, |
- MDT_DEFAULT = MDT_EFFECTIVE_DPI |
-} MONITOR_DPI_TYPE; |
- |
-// Win8.1 supports monitor-specific DPI scaling. |
-bool SetProcessDpiAwarenessWrapper(PROCESS_DPI_AWARENESS value) { |
- typedef BOOL(WINAPI *SetProcessDpiAwarenessPtr)(PROCESS_DPI_AWARENESS); |
- SetProcessDpiAwarenessPtr set_process_dpi_awareness_func = |
- reinterpret_cast<SetProcessDpiAwarenessPtr>( |
- GetProcAddress(GetModuleHandleA("user32.dll"), |
- "SetProcessDpiAwarenessInternal")); |
- if (set_process_dpi_awareness_func) { |
- HRESULT hr = set_process_dpi_awareness_func(value); |
- if (SUCCEEDED(hr)) { |
- VLOG(1) << "SetProcessDpiAwareness succeeded."; |
- return true; |
- } else if (hr == E_ACCESSDENIED) { |
- LOG(ERROR) << "Access denied error from SetProcessDpiAwareness. " |
- "Function called twice, or manifest was used."; |
- } |
- } |
- return false; |
-} |
- |
-// This function works for Windows Vista through Win8. Win8.1 must use |
-// SetProcessDpiAwareness[Wrapper] |
-BOOL SetProcessDPIAwareWrapper() { |
- typedef BOOL(WINAPI *SetProcessDPIAwarePtr)(VOID); |
- SetProcessDPIAwarePtr set_process_dpi_aware_func = |
- reinterpret_cast<SetProcessDPIAwarePtr>( |
- GetProcAddress(GetModuleHandleA("user32.dll"), |
- "SetProcessDPIAware")); |
- return set_process_dpi_aware_func && |
- set_process_dpi_aware_func(); |
-} |
- |
-DWORD ReadRegistryValue(HKEY root, |
- const wchar_t* base_key, |
- const wchar_t* value_name, |
- DWORD default_value) { |
- base::win::RegKey reg_key(HKEY_CURRENT_USER, |
- base_key, |
- KEY_QUERY_VALUE); |
- DWORD value; |
- if (reg_key.Valid() && |
- reg_key.ReadValueDW(value_name, &value) == ERROR_SUCCESS) { |
- return value; |
- } |
- return default_value; |
-} |
- |
} // namespace |
namespace gfx { |
@@ -129,47 +56,19 @@ Size GetDPI() { |
} |
float GetDPIScale() { |
- if (IsHighDPIEnabled()) { |
- if (gfx::Display::HasForceDeviceScaleFactor()) |
- return gfx::Display::GetForcedDeviceScaleFactor(); |
- float dpi_scale = GetUnforcedDeviceScaleFactor(); |
- if (dpi_scale <= 1.25) { |
- // Force 125% and below to 100% scale. We do this to maintain previous |
- // (non-DPI-aware) behavior where only the font size was boosted. |
- dpi_scale = 1.0; |
- } |
- return dpi_scale; |
- } |
- return 1.0; |
-} |
- |
-void ForceHighDPISupportForTesting(float scale) { |
- g_device_scale_factor = scale; |
-} |
- |
-bool IsHighDPIEnabled() { |
- // Flag stored in HKEY_CURRENT_USER\SOFTWARE\\Google\\Chrome\\Profile, |
- // under the DWORD value high-dpi-support. |
- // Default is disabled. |
- static DWORD value = ReadRegistryValue( |
- HKEY_CURRENT_USER, gfx::win::kRegistryProfilePath, |
- gfx::win::kHighDPISupportW, TRUE); |
- return value != 0; |
-} |
- |
-void EnableHighDPISupport() { |
- if (IsHighDPIEnabled() && |
- !SetProcessDpiAwarenessWrapper(PROCESS_SYSTEM_DPI_AWARE)) { |
- SetProcessDPIAwareWrapper(); |
+ if (gfx::Display::HasForceDeviceScaleFactor()) |
+ return gfx::Display::GetForcedDeviceScaleFactor(); |
+ float dpi_scale = GetUnforcedDeviceScaleFactor(); |
+ if (dpi_scale <= 1.25) { |
+ // Force 125% and below to 100% scale. We do this to maintain previous |
+ // (non-DPI-aware) behavior where only the font size was boosted. |
+ dpi_scale = 1.0; |
} |
+ return dpi_scale; |
} |
namespace win { |
-GFX_EXPORT const wchar_t kRegistryProfilePath[] = |
- L"Software\\Google\\Chrome\\Profile"; |
-GFX_EXPORT const wchar_t kHighDPISupportW[] = L"high-dpi-support"; |
- |
Point ScreenToDIPPoint(const Point& pixel_point) { |
return ToFlooredPoint(ScalePoint(pixel_point, 1.0f / GetDPIScale())); |
} |
@@ -208,9 +107,5 @@ int GetSystemMetricsInDIP(int metric) { |
return static_cast<int>(GetSystemMetrics(metric) / GetDPIScale() + 0.5); |
} |
-bool IsDeviceScaleFactorSet() { |
- return g_device_scale_factor != 0.0f; |
-} |
- |
} // namespace win |
} // namespace gfx |