diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-03-16 00:56:18 +0100 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-03-16 01:02:47 +0100 |
commit | 0ba6e29363856b84fbefb9e4f59f8450e0e57789 (patch) | |
tree | 627e566ef550175e511e6a0aaf7677093ec3c1b1 /vdagent | |
parent | 67c1bcf49367d1726033b298a8ab016b4e22cf23 (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.cpp | 6 |
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; |