[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