user32/tests: Try to read the dpi from the user key first.
Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
5159279f28
commit
3845b0bb73
|
@ -165,17 +165,34 @@ static int last_bpp;
|
||||||
static BOOL displaychange_ok = FALSE, displaychange_test_active = FALSE;
|
static BOOL displaychange_ok = FALSE, displaychange_test_active = FALSE;
|
||||||
static HANDLE displaychange_sem = 0;
|
static HANDLE displaychange_sem = 0;
|
||||||
|
|
||||||
static int get_real_dpi(void)
|
static BOOL get_reg_dword(HKEY base, const char *key_name, const char *value_name, DWORD *value)
|
||||||
{
|
{
|
||||||
HKEY key;
|
HKEY key;
|
||||||
DWORD value = USER_DEFAULT_SCREEN_DPI, size = sizeof(value);
|
DWORD type, data, size = sizeof(data);
|
||||||
|
BOOL ret = FALSE;
|
||||||
|
|
||||||
if (!RegOpenKeyA(HKEY_CURRENT_USER, "Control Panel\\Desktop", &key))
|
if (RegOpenKeyA(base, key_name, &key) == ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
RegQueryValueExA(key, "LogPixels", NULL, NULL, (BYTE *)&value, &size);
|
if (RegQueryValueExA(key, value_name, NULL, &type, (void *)&data, &size) == ERROR_SUCCESS &&
|
||||||
|
type == REG_DWORD)
|
||||||
|
{
|
||||||
|
*value = data;
|
||||||
|
ret = TRUE;
|
||||||
|
}
|
||||||
RegCloseKey(key);
|
RegCloseKey(key);
|
||||||
}
|
}
|
||||||
return value;
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static DWORD get_real_dpi(void)
|
||||||
|
{
|
||||||
|
DWORD dpi;
|
||||||
|
|
||||||
|
if (get_reg_dword(HKEY_CURRENT_USER, "Control Panel\\Desktop", "LogPixels", &dpi))
|
||||||
|
return dpi;
|
||||||
|
if (get_reg_dword(HKEY_CURRENT_CONFIG, "Software\\Fonts", "LogPixels", &dpi))
|
||||||
|
return dpi;
|
||||||
|
return USER_DEFAULT_SCREEN_DPI;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LRESULT CALLBACK SysParamsTestWndProc( HWND hWnd, UINT msg, WPARAM wParam,
|
static LRESULT CALLBACK SysParamsTestWndProc( HWND hWnd, UINT msg, WPARAM wParam,
|
||||||
|
|
Loading…
Reference in New Issue