[ros-diffs] [jgardou] 47044: [GDI32] - Use device string when given one in IntCreateDIC [WIN32K] - Exchange pdevmode when excahnging PDEVOBJ pointers - Update Globals gdi devcaps when switching mode if ppdev is the primary surface

jgardou at svn.reactos.org jgardou at svn.reactos.org
Mon Apr 26 23:49:11 CEST 2010


Author: jgardou
Date: Mon Apr 26 23:49:09 2010
New Revision: 47044

URL: http://svn.reactos.org/svn/reactos?rev=47044&view=rev
Log:
[GDI32]
  - Use device string when given one in IntCreateDIC
[WIN32K]
  - Exchange pdevmode when excahnging PDEVOBJ pointers
  - Update Globals gdi devcaps when switching mode if ppdev is the primary surface

Modified:
    branches/reactos-yarotows/dll/win32/gdi32/objects/dc.c
    branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c

Modified: branches/reactos-yarotows/dll/win32/gdi32/objects/dc.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/dll/win32/gdi32/objects/dc.c?rev=47044&r1=47043&r2=47044&view=diff
==============================================================================
--- branches/reactos-yarotows/dll/win32/gdi32/objects/dc.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/dll/win32/gdi32/objects/dc.c [iso-8859-1] Mon Apr 26 23:49:09 2010
@@ -15,7 +15,7 @@
 {
  UNICODE_STRING Device, Output;
  HDC hDC = NULL;
- BOOL Display = FALSE, Default = TRUE;
+ BOOL Display = FALSE, Default = FALSE;
  ULONG UMdhpdev = 0;
 
  HANDLE hspool = NULL;
@@ -31,7 +31,7 @@
 
  if ((!lpwszDevice) && (!lpwszDriver))
  {
-     Default = FALSE;  // Ask Win32k to set Default device.
+     Default = TRUE;  // Ask Win32k to set Default device.
      Display = TRUE;   // Most likely to be DISPLAY.
  }
  else
@@ -318,7 +318,7 @@
 DeleteObject(HGDIOBJ hObject)
 {
   UINT Type = 0;
-    
+
   /* From Wine: DeleteObject does not SetLastError() on a null object */
   if(!hObject) return FALSE;
 
@@ -332,7 +332,7 @@
 
   Type = GDI_HANDLE_GET_TYPE(hObject);
 
-  if ((Type == GDI_OBJECT_TYPE_METAFILE) || 
+  if ((Type == GDI_OBJECT_TYPE_METAFILE) ||
       (Type == GDI_OBJECT_TYPE_ENHMETAFILE))
      return FALSE;
 
@@ -348,7 +348,7 @@
      case GDI_OBJECT_TYPE_METADC:
        return MFDRV_DeleteObject( hObject );
      case GDI_OBJECT_TYPE_EMF:
-     {          
+     {
        PLDC pLDC = GdiGetLDC(hObject);
        if ( !pLDC ) return FALSE;
        return EMFDRV_DeleteObject( hObject );
@@ -533,7 +533,7 @@
         return NtGdiGetDeviceCaps(hDC,i);
   }
   DPRINT("Device CAPS2\n");
-  
+
   switch (i)
   {
     case DRIVERVERSION:
@@ -1608,7 +1608,7 @@
 
 #if 0
         case GDI_OBJECT_TYPE_METADC:
-            return MFDRV_SelectObject( hDC, hGdiObj); 
+            return MFDRV_SelectObject( hDC, hGdiObj);
         case GDI_OBJECT_TYPE_EMF:
             PLDC pLDC = GdiGetLDC(hDC);
             if ( !pLDC ) return NULL;

Modified: branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c
URL: http://svn.reactos.org/svn/reactos/branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c?rev=47044&r1=47043&r2=47044&view=diff
==============================================================================
--- branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c [iso-8859-1] (original)
+++ branches/reactos-yarotows/subsystems/win32/win32k/eng/pdevobj.c [iso-8859-1] Mon Apr 26 23:49:09 2010
@@ -321,6 +321,10 @@
     ppdev->gdiinfo = ppdev2->gdiinfo;
     ppdev2->gdiinfo = pdevTmp.gdiinfo;
 
+    /* Exchange DEVMODE */
+    ppdev->pdmwDev = ppdev2->pdmwDev;
+    ppdev2->pdmwDev = pdevTmp.pdmwDev ;
+
     /* Notify each driver instance of its new HDEV association */
     ppdev->pfn.CompletePDEV(ppdev->dhpdev, (HDEV)ppdev);
     ppdev2->pfn.CompletePDEV(ppdev2->dhpdev, (HDEV)ppdev2);
@@ -382,6 +386,12 @@
     /* 8. Disable DirectDraw */
 
     PDEVOBJ_vRelease(ppdevTmp);
+
+    /* Update primary display capabilities */
+    if(ppdev == gppdevPrimary)
+    {
+        PDEVOBJ_vGetDeviceCaps(ppdev, &GdiHandleTable->DevCaps);
+    }
 
     /* Success! */
     retval = TRUE;




More information about the Ros-diffs mailing list