--- truecrypt/mount/hotkeys.c 2018/04/24 16:47:09 1.1.1.5 +++ truecrypt/mount/hotkeys.c 2018/04/24 17:03:35 1.1.1.11 @@ -1,7 +1,7 @@ /* - Copyright (c) TrueCrypt Foundation. All rights reserved. + Copyright (c) 2005 TrueCrypt Foundation. All rights reserved. - Covered by the TrueCrypt License 2.2 the full text of which is contained + Governed by the TrueCrypt License 2.7 the full text of which is contained in the file License.txt included in TrueCrypt binary and source code distribution packages. */ @@ -195,6 +195,10 @@ static void DisplayHotkeyList (HWND hwnd item.pszText = GetString ("HK_WIPE_CACHE"); break; + case HK_DISMOUNT_ALL_AND_WIPE: + item.pszText = GetString ("HK_DISMOUNT_ALL_AND_WIPE"); + break; + case HK_FORCE_DISMOUNT_ALL_AND_WIPE: item.pszText = GetString ("HK_FORCE_DISMOUNT_ALL_AND_WIPE"); break; @@ -211,6 +215,10 @@ static void DisplayHotkeyList (HWND hwnd item.pszText = GetString ("HK_SHOW_HIDE_MAIN_WINDOW"); break; + case HK_CLOSE_SECURITY_TOKEN_SESSIONS: + item.pszText = GetString ("IDM_CLOSE_ALL_TOKEN_SESSIONS"); + break; + default: item.pszText = L"[?]"; } @@ -259,7 +267,7 @@ static void DisplayHotkeyList (HWND hwnd -BOOL WINAPI HotkeysDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +BOOL CALLBACK HotkeysDlgProc (HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { HWND hList = GetDlgItem (hwndDlg, IDC_HOTKEY_LIST); HWND hwndMainDlg = hwndDlg; @@ -292,12 +300,12 @@ BOOL WINAPI HotkeysDlgProc (HWND hwndDlg memset (&col,0,sizeof(col)); col.mask = LVCF_TEXT|LVCF_WIDTH|LVCF_SUBITEM|LVCF_FMT; col.pszText = GetString ("ACTION"); - col.cx = 341; + col.cx = CompensateXDPI (341); col.fmt = LVCFMT_LEFT; SendMessageW (hList,LVM_INSERTCOLUMNW,0,(LPARAM)&col); col.pszText = GetString ("SHORTCUT"); - col.cx = 190; + col.cx = CompensateXDPI (190); col.fmt = LVCFMT_LEFT; SendMessageW (hList,LVM_INSERTCOLUMNW,1,(LPARAM)&col); @@ -373,6 +381,8 @@ BOOL WINAPI HotkeysDlgProc (HWND hwndDlg if (lw == IDC_HOTKEY_ASSIGN) { + BOOL bOwnActiveShortcut = FALSE; + if (nSelectedHotkeyId >= 0 && currentVKeyCode != 0) { UINT modifiers = 0; @@ -409,15 +419,18 @@ BOOL WINAPI HotkeysDlgProc (HWND hwndDlg break; } + bOwnActiveShortcut = ShortcutInUse (currentVKeyCode, modifiers, Hotkeys); + // Test if the shortcut can be assigned without errors - if (!RegisterHotKey (hwndDlg, nSelectedHotkeyId, modifiers, currentVKeyCode)) + if (!bOwnActiveShortcut + && !RegisterHotKey (hwndDlg, nSelectedHotkeyId, modifiers, currentVKeyCode)) { handleWin32Error(hwndDlg); return 1; } else { - if (!UnregisterHotKey (hwndDlg, nSelectedHotkeyId)) + if (!bOwnActiveShortcut && !UnregisterHotKey (hwndDlg, nSelectedHotkeyId)) handleWin32Error(hwndDlg); tmpHotkeys[nSelectedHotkeyId].vKeyCode = currentVKeyCode;