VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Common
diff options
context:
space:
mode:
authorMounir IDRASSI <mounir.idrassi@idrix.fr>2014-12-26 16:53:55 +0100
committerMounir IDRASSI <mounir.idrassi@idrix.fr>2014-12-26 16:55:21 +0100
commit258ba629a2dc1af61b2fade1e040830080ffcc57 (patch)
treecb095dbf7cd4740518f358c353a8e122c0057ee2 /src/Common
parentd90d9f0c401a21c85a525aaca0b97df8f7955db8 (diff)
downloadVeraCrypt-258ba629a2dc1af61b2fade1e040830080ffcc57.tar.gz
VeraCrypt-258ba629a2dc1af61b2fade1e040830080ffcc57.zip
Windows: workaround freezing of waiting dialog but setting its parent to the desktop and making all mount calls in a separate thread. DeviceIoControl is making our like hard because it doesn't behave as a normal system call and it blocks our window message loop even when called from a separate thread.
Diffstat (limited to 'src/Common')
-rw-r--r--src/Common/Common.rc3
-rw-r--r--src/Common/Dlgcode.c4
2 files changed, 4 insertions, 3 deletions
diff --git a/src/Common/Common.rc b/src/Common/Common.rc
index 4f4dfb32..fcb7aaab 100644
--- a/src/Common/Common.rc
+++ b/src/Common/Common.rc
@@ -310,7 +310,8 @@ BEGIN
END
IDD_STATIC_MODAL_WAIT_DLG DIALOGEX 0, 0, 292, 61
-STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
+STYLE DS_SYSMODAL | DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION
+EXSTYLE WS_EX_TOPMOST
CAPTION "VeraCrypt"
FONT 8, "MS Shell Dlg", 0, 0, 0x0
BEGIN
diff --git a/src/Common/Dlgcode.c b/src/Common/Dlgcode.c
index f7d86cfb..844cda9b 100644
--- a/src/Common/Dlgcode.c
+++ b/src/Common/Dlgcode.c
@@ -6369,9 +6369,9 @@ retry:
threadParam.pmount = &mount;
threadParam.pbResult = &bResult;
threadParam.pdwResult = &dwResult;
-
+
DialogBoxParamW (hInst,
- MAKEINTRESOURCEW (IDD_STATIC_MODAL_WAIT_DLG), hwndDlg,
+ MAKEINTRESOURCEW (IDD_STATIC_MODAL_WAIT_DLG), GetDesktopWindow(),
(DLGPROC) MountWaitDlgProc, (LPARAM) &threadParam);
}
else