aboutsummaryrefslogtreecommitdiffstats
path: root/win/rfb_win32
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2017-11-13 16:17:28 +0100
committerPierre Ossman <ossman@cendio.se>2017-11-13 16:17:28 +0100
commit1ce3b3797a8f5a1cf7b28490e66ef500ed8b4307 (patch)
treebf863f3621a42a2e72c3567774c60228a85e7c71 /win/rfb_win32
parentcc945566b4e384bbbe3b0198320bcb50fb6db40a (diff)
downloadtigervnc-1ce3b3797a8f5a1cf7b28490e66ef500ed8b4307.tar.gz
tigervnc-1ce3b3797a8f5a1cf7b28490e66ef500ed8b4307.zip
Handle Ctrl+Alt+Delete in raw keyboard mode
Ctrl+Alt+Delete requires special handling to trigger on Windows. Make sure this works in raw keyboard mode as well.
Diffstat (limited to 'win/rfb_win32')
-rw-r--r--win/rfb_win32/SInput.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/win/rfb_win32/SInput.cxx b/win/rfb_win32/SInput.cxx
index e6da9b84..d41e14bc 100644
--- a/win/rfb_win32/SInput.cxx
+++ b/win/rfb_win32/SInput.cxx
@@ -377,6 +377,14 @@ void win32::SKeyboard::keyEvent(rdr::U32 keysym, rdr::U32 keycode, bool down)
if ((keycode == 0x54) && !(GetAsyncKeyState(VK_MENU) & 0x8000))
keycode = 0xb7;
+ if (down && (keycode == 0xd3) &&
+ ((GetAsyncKeyState(VK_CONTROL) & 0x8000) != 0) &&
+ ((GetAsyncKeyState(VK_MENU) & 0x8000) != 0))
+ {
+ rfb::win32::emulateCtrlAltDel();
+ return;
+ }
+
doScanCodeEvent(keycode, down);
return;
}