1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-03 00:09:37 +00:00

notepad: Use GetDpiForWindow().

Instead of querying the registry, just calls `GetDpiForWindow`.

Winecfg's DPI slider sets `Control Panel\\Desktop\\LogPixels`.
See `programs/winecfg/x11drvdlg.c`
Notepad queries `Software\\Fonts\\LogPixels`, and so doesn't pick up
on the change.
This commit is contained in:
Petrichor Park 2023-07-18 12:02:41 -05:00 committed by Alexandre Julliard
parent 224b771c0d
commit 100504d2f5
3 changed files with 3 additions and 31 deletions

View File

@ -958,7 +958,7 @@ VOID DIALOG_FilePrint(VOID)
/* Create a font for the printer resolution */
lfFont = Globals.lfFont;
lfFont.lfHeight = MulDiv(lfFont.lfHeight, GetDeviceCaps(printer.hDC, LOGPIXELSY), get_dpi());
lfFont.lfHeight = MulDiv(lfFont.lfHeight, GetDeviceCaps(printer.hDC, LOGPIXELSY), GetDpiForWindow(Globals.hMainWnd));
/* Make the font a bit lighter */
lfFont.lfWeight -= 100;
hTextFont = CreateFontIndirectW(&lfFont);

View File

@ -81,33 +81,6 @@ VOID SetFileNameAndEncoding(LPCWSTR szFileName, ENCODING enc)
Globals.encFile = enc;
}
/******************************************************************************
* get_dpi
*
* Get the dpi from registry HKCC\Software\Fonts\LogPixels.
*/
DWORD get_dpi(void)
{
static const WCHAR dpi_key_name[] = {'S','o','f','t','w','a','r','e','\\','F','o','n','t','s','\0'};
static const WCHAR dpi_value_name[] = {'L','o','g','P','i','x','e','l','s','\0'};
DWORD dpi = 96;
HKEY hkey;
if (RegOpenKeyW(HKEY_CURRENT_CONFIG, dpi_key_name, &hkey) == ERROR_SUCCESS)
{
DWORD type, size, new_dpi;
size = sizeof(new_dpi);
if(RegQueryValueExW(hkey, dpi_value_name, NULL, &type, (LPBYTE)&new_dpi, &size) == ERROR_SUCCESS)
{
if(type == REG_DWORD && new_dpi != 0)
dpi = new_dpi;
}
RegCloseKey(hkey);
}
return dpi;
}
void UpdateStatusBar(void)
{
int currentLine;
@ -210,7 +183,7 @@ static VOID NOTEPAD_SaveSettingToRegistry(void)
#undef SET_NOTEPAD_REG
/* Store the current value as 10 * twips */
data = MulDiv(abs(Globals.lfFont.lfHeight), 720 , get_dpi());
data = MulDiv(abs(Globals.lfFont.lfHeight), 720, GetDpiForWindow(Globals.hMainWnd));
RegSetValueExW(hkey, value_iPointSize, 0, REG_DWORD, (LPBYTE)&data, sizeof(DWORD));
RegSetValueExW(hkey, value_lfFaceName, 0, REG_SZ, (LPBYTE)&Globals.lfFont.lfFaceName,
@ -309,7 +282,7 @@ static VOID NOTEPAD_LoadSettingFromRegistry(void)
if(RegQueryValueExW(hkey, value_iPointSize, 0, &type, (LPBYTE)&point_size, &size) == ERROR_SUCCESS)
if(type == REG_DWORD)
/* The value is stored as 10 * twips */
Globals.lfFont.lfHeight = -MulDiv(abs(point_size), get_dpi(), 720);
Globals.lfFont.lfHeight = -MulDiv(abs(point_size), GetDpiForWindow(Globals.hMainWnd), 720);
size = sizeof(Globals.lfFont.lfFaceName);
if(RegQueryValueExW(hkey, value_lfFaceName, 0, &type, (LPBYTE)&data_helper, &size) == ERROR_SUCCESS)

View File

@ -76,7 +76,6 @@ extern NOTEPAD_GLOBALS Globals;
VOID SetFileNameAndEncoding(LPCWSTR szFileName, ENCODING enc);
void NOTEPAD_DoFind(FINDREPLACEW *fr);
DWORD get_dpi(void);
void UpdateStatusBar(void);
void updateWindowSize(int width, int height);
LRESULT CALLBACK EDIT_CallBackProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData);