Reattach monitors

Teach vdagent to attach monitors. A monitor needs to be enabled before
we can set the custom resolution. Fortunately, the client doesn't seem
to have time to catch that, so things are smooth.

This is require to allow the virt-viewer display menu to work properly
and enable extra monitors: https://bugzilla.redhat.com/show_bug.cgi?id=919530
This commit is contained in:
Marc-André Lureau 2013-03-16 00:56:18 +01:00
parent 67c1bcf493
commit 0ba6e29363

View File

@ -243,6 +243,7 @@ bool DesktopLayout::init_dev_mode(LPCTSTR dev_name, DEVMODE* dev_mode, DisplayMo
DWORD best = -1;
QXLEscapeSetCustomDisplay custom;
HDC hdc = NULL;
LONG ret;
ZeroMemory(dev_mode, sizeof(DEVMODE));
dev_mode->dmSize = sizeof(DEVMODE);
@ -252,6 +253,11 @@ bool DesktopLayout::init_dev_mode(LPCTSTR dev_name, DEVMODE* dev_mode, DisplayMo
return true;
}
// attach
EnumDisplaySettings(dev_name, ENUM_CURRENT_SETTINGS, dev_mode);
ret = ChangeDisplaySettingsEx(dev_name, dev_mode, NULL, CDS_UPDATEREGISTRY, NULL);
vd_printf("attach %d", ret);
// Update custom resolution
custom.xres = mode->_width;
custom.yres = mode->_height;