VirtualBox

Changeset 48979 in vbox for trunk/src/VBox/Additions/WINNT


Ignore:
Timestamp:
Oct 8, 2013 3:42:15 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
89694
Message:

VBoxTray/wddm: fix Vista autoresize

Location:
trunk/src/VBox/Additions/WINNT/VBoxTray
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDispIf.cpp

    r48815 r48979  
    13451345}
    13461346
     1347static DWORD vboxDispIfWddmResizeDisplayVista(DEVMODE *paDeviceModes, DISPLAY_DEVICE *paDisplayDevices, DWORD cDevModes, UINT iChangedMode, BOOL fEnable, BOOL fExtDispSup)
     1348{
     1349    /* Without this, Windows will not ask the miniport for its
     1350     * mode table but uses an internal cache instead.
     1351     */
     1352    for (DWORD i = 0; i < cDevModes; i++)
     1353    {
     1354        DEVMODE tempDevMode;
     1355        ZeroMemory (&tempDevMode, sizeof (tempDevMode));
     1356        tempDevMode.dmSize = sizeof(DEVMODE);
     1357        EnumDisplaySettings((LPSTR)paDisplayDevices[i].DeviceName, 0xffffff, &tempDevMode);
     1358        Log(("VBoxTray: ResizeDisplayDevice: EnumDisplaySettings last error %d\n", GetLastError ()));
     1359    }
     1360
     1361    DWORD winEr = EnableAndResizeDispDev(paDeviceModes, paDisplayDevices, cDevModes, iChangedMode, paDeviceModes[iChangedMode].dmPelsWidth, paDeviceModes[iChangedMode].dmPelsHeight,
     1362            paDeviceModes[iChangedMode].dmBitsPerPel, paDeviceModes[iChangedMode].dmPosition.x, paDeviceModes[iChangedMode].dmPosition.y, fEnable, fExtDispSup);
     1363    if (winEr != NO_ERROR)
     1364        WARN(("VBoxTray: (WDDM) Failed EnableAndResizeDispDev winEr %d\n", winEr));
     1365
     1366    return winEr;
     1367}
     1368
    13471369static DWORD vboxDispIfResizePerform(PCVBOXDISPIF const pIf, UINT iChangedMode, BOOL fEnable, BOOL fExtDispSup, DISPLAY_DEVICE *paDisplayDevices, DEVMODE *paDeviceModes, UINT cDevModes)
    13481370{
     
    13561378    else
    13571379    {
    1358         winEr = EnableAndResizeDispDev(paDeviceModes, paDisplayDevices, cDevModes, iChangedMode, paDeviceModes[iChangedMode].dmPelsWidth, paDeviceModes[iChangedMode].dmPelsHeight,
    1359                 paDeviceModes[iChangedMode].dmBitsPerPel, paDeviceModes[iChangedMode].dmPosition.x, paDeviceModes[iChangedMode].dmPosition.y, fEnable, fExtDispSup);
     1380        winEr = vboxDispIfWddmResizeDisplayVista(paDeviceModes, paDisplayDevices, cDevModes, iChangedMode, fEnable, fExtDispSup);
    13601381        if (winEr != NO_ERROR)
    1361             WARN(("VBoxTray: (WDDM) Failed EnableAndResizeDispDev winEr %d\n", winEr));
     1382            WARN(("VBoxTray: (WDDM) Failed vboxDispIfWddmResizeDisplayVista winEr %d\n", winEr));
    13621383    }
    13631384    return winEr;
     
    18221843        for (DWORD i = 0; i < cIds; ++i)
    18231844        {
    1824             winEr = EnableAndResizeDispDev(paNewDeviceModes, paNewDisplayDevices, NewDevNum, i, 0, 0, 0, 0, 0, FALSE, TRUE);
     1845            winEr = vboxDispIfWddmResizeDisplayVista(paNewDeviceModes, paNewDisplayDevices, NewDevNum, i, FALSE, TRUE);
    18251846            if (winEr != NO_ERROR)
    1826                 WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: EnableAndResizeDispDev failed winEr 0x%x\n", winEr));
     1847                WARN(("VBoxTray: vboxDispIfResizeStartedWDDMOp: vboxDispIfWddmResizeDisplayVista failed winEr 0x%x\n", winEr));
    18271848        }
    18281849    }
  • trunk/src/VBox/Additions/WINNT/VBoxTray/VBoxDisplay.cpp

    r48070 r48979  
    261261                    deviceMode.dmFields = DM_POSITION;
    262262                else /* for win 7 and above */
    263                     /* for vista and aboce DM_BITSPERPELis necessary */
     263                    /* for vista and above DM_BITSPERPEL is necessary */
    264264                    deviceMode.dmFields =   DM_BITSPERPEL | DM_DISPLAYFLAGS | DM_DISPLAYFREQUENCY  | DM_POSITION;
    265265
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette