[1/2] wineps.drv: Use device resolution specified at DC creation time.
Dmitry Timoshkov
dmitry at baikal.ru
Tue Dec 18 02:57:44 CST 2012
Now GetDeviceCaps after CreateDC/CreateIC with a passed in custom DEVMODE
returns correct results for resolutions different from the default one.
---
dlls/wineps.drv/init.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/dlls/wineps.drv/init.c b/dlls/wineps.drv/init.c
index c63a6be..4df859e 100644
--- a/dlls/wineps.drv/init.c
+++ b/dlls/wineps.drv/init.c
@@ -153,6 +153,19 @@ static void PSDRV_UpdateDevCaps( PSDRV_PDEVICE *physDev )
PAGESIZE *page;
INT width = 0, height = 0;
+ if (physDev->Devmode->dmPublic.dmFields & DM_PRINTQUALITY)
+ {
+ physDev->logPixelsX = physDev->Devmode->dmPublic.u1.s1.dmPrintQuality;
+ physDev->logPixelsY = physDev->logPixelsX;
+ }
+ else
+ {
+ physDev->logPixelsX = physDev->pi->ppd->DefaultResolution;
+ physDev->logPixelsY = physDev->logPixelsX;
+ }
+ if (physDev->Devmode->dmPublic.dmFields & DM_YRESOLUTION)
+ physDev->logPixelsY = physDev->Devmode->dmPublic.dmYResolution;
+
if(physDev->Devmode->dmPublic.dmFields & DM_PAPERSIZE) {
LIST_FOR_EACH_ENTRY(page, &physDev->pi->ppd->PageSizes, PAGESIZE, entry) {
if(page->WinPage == physDev->Devmode->dmPublic.u1.s1.dmPaperSize)
--
1.8.0.2
More information about the wine-patches
mailing list