mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2025-11-11 11:08:02 -06:00
Windows: Implement waiting dialog for Auto-Mount Devices operations to avoid freezing GUI.
This commit is contained in:
@@ -4415,9 +4415,9 @@ retry:
|
||||
return status;
|
||||
}
|
||||
|
||||
static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
static BOOL MountAllDevicesThreadCode (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
{
|
||||
HWND driveList = GetDlgItem (hwndDlg, IDC_DRIVELIST);
|
||||
HWND driveList = GetDlgItem (MainDlg, IDC_DRIVELIST);
|
||||
int selDrive = ListView_GetSelectionMark (driveList);
|
||||
BOOL shared = FALSE, status = FALSE, bHeaderBakRetry = FALSE;
|
||||
int mountedVolCount = 0;
|
||||
@@ -4536,7 +4536,7 @@ static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
if (mounted == 2)
|
||||
shared = TRUE;
|
||||
|
||||
LoadDriveLetters (hwndDlg, driveList, (HIWORD (GetItemLong (GetDlgItem (hwndDlg, IDC_DRIVELIST), selDrive))));
|
||||
LoadDriveLetters (hwndDlg, driveList, (HIWORD (GetItemLong (GetDlgItem (MainDlg, IDC_DRIVELIST), selDrive))));
|
||||
selDrive++;
|
||||
|
||||
if (bExplore)
|
||||
@@ -4656,13 +4656,38 @@ ret:
|
||||
if (UsePreferences)
|
||||
bCacheInDriver = bCacheInDriverDefault;
|
||||
|
||||
EnableDisableButtons (hwndDlg);
|
||||
EnableDisableButtons (MainDlg);
|
||||
|
||||
NormalCursor();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
typedef struct
|
||||
{
|
||||
BOOL bPasswordPrompt;
|
||||
BOOL bRet;
|
||||
} MountAllDevicesThreadParam;
|
||||
|
||||
void CALLBACK mountAllDevicesThreadProc(void* pArg, HWND hwndDlg)
|
||||
{
|
||||
MountAllDevicesThreadParam* threadParam =(MountAllDevicesThreadParam*) pArg;
|
||||
BOOL bPasswordPrompt = threadParam->bPasswordPrompt;
|
||||
|
||||
threadParam->bRet = MountAllDevicesThreadCode (hwndDlg, bPasswordPrompt);
|
||||
}
|
||||
|
||||
static BOOL MountAllDevices (HWND hwndDlg, BOOL bPasswordPrompt)
|
||||
{
|
||||
MountAllDevicesThreadParam param;
|
||||
param.bPasswordPrompt = bPasswordPrompt;
|
||||
param.bRet = FALSE;
|
||||
|
||||
ShowWaitDialog (hwndDlg, TRUE, mountAllDevicesThreadProc, ¶m);
|
||||
|
||||
return param.bRet;
|
||||
}
|
||||
|
||||
static void ChangePassword (HWND hwndDlg)
|
||||
{
|
||||
INT_PTR result;
|
||||
|
||||
Reference in New Issue
Block a user