summaryrefslogtreecommitdiff
path: root/vdagent
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-03-16 00:56:18 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-03-16 01:02:47 +0100
commit0ba6e29363856b84fbefb9e4f59f8450e0e57789 (patch)
tree627e566ef550175e511e6a0aaf7677093ec3c1b1 /vdagent
parent67c1bcf49367d1726033b298a8ab016b4e22cf23 (diff)
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
Diffstat (limited to 'vdagent')
-rw-r--r--vdagent/desktop_layout.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/vdagent/desktop_layout.cpp b/vdagent/desktop_layout.cpp
index 7cb2f4b..bce9ac0 100644
--- a/vdagent/desktop_layout.cpp
+++ b/vdagent/desktop_layout.cpp
@@ -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;