Module: wine Branch: master Commit: df0417831a01f025b8f6e326c8de0e40c5ab674d URL: https://gitlab.winehq.org/wine/wine/-/commit/df0417831a01f025b8f6e326c8de0e4...
Author: Piotr Caban piotr@codeweavers.com Date: Fri May 5 20:54:32 2023 +0200
wineps: Copy GetTextMetrics implementation to unixlib.
---
dlls/wineps.drv/init.c | 1 - dlls/wineps.drv/unixlib.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c index 8c2c6d4af4b..66c052db27c 100644 --- a/dlls/wineps.drv/init.c +++ b/dlls/wineps.drv/init.c @@ -694,7 +694,6 @@ static struct gdi_dc_funcs psdrv_funcs = .pCreateDC = PSDRV_CreateDC, .pDeleteDC = PSDRV_DeleteDC, .pGetTextExtentExPoint = PSDRV_GetTextExtentExPoint, - .pGetTextMetrics = PSDRV_GetTextMetrics, .priority = GDI_PRIORITY_GRAPHICS_DRV };
diff --git a/dlls/wineps.drv/unixlib.c b/dlls/wineps.drv/unixlib.c index 283c5b8d4a7..d7f8eb7e9a9 100644 --- a/dlls/wineps.drv/unixlib.c +++ b/dlls/wineps.drv/unixlib.c @@ -1191,6 +1191,21 @@ static BOOL CDECL get_char_width(PHYSDEV dev, UINT first, UINT count, const WCHA return TRUE; }
+static BOOL CDECL get_text_metrics(PHYSDEV dev, TEXTMETRICW *metrics) +{ + PSDRV_PDEVICE *pdev = get_psdrv_dev(dev); + + if (pdev->font.fontloc == Download) + { + dev = GET_NEXT_PHYSDEV(dev, pGetTextMetrics); + return dev->funcs->pGetTextMetrics(dev, metrics); + } + + memcpy(metrics, &(pdev->font.fontinfo.Builtin.tm), + sizeof(pdev->font.fontinfo.Builtin.tm)); + return TRUE; +} + static NTSTATUS init_dc(void *arg) { struct init_dc_params *params = arg; @@ -1201,6 +1216,7 @@ static NTSTATUS init_dc(void *arg) params->funcs->pSelectFont = select_font; params->funcs->pEnumFonts = enum_fonts; params->funcs->pGetCharWidth = get_char_width; + params->funcs->pGetTextMetrics = get_text_metrics; return TRUE; }