diff --git a/src/rufus.c b/src/rufus.c index ebeca267..39ca8b2f 100644 --- a/src/rufus.c +++ b/src/rufus.c @@ -882,6 +882,14 @@ static void CALLBACK BlockingTimer(HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD BOOL CALLBACK ISOProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { + case WM_SHOWWINDOW: + // If we don't do this, the ISO progress dialog will remain visible + // if it was active while the app was minimized + if (wParam && (lParam == SW_PARENTOPENING) && (!iso_op_in_progress)) { + ShowWindow(hDlg, SW_HIDE); + return TRUE; + } + return FALSE; case WM_INITDIALOG: apply_localization(IDD_ISO_EXTRACT, hDlg); hISOProgressBar = GetDlgItem(hDlg, IDC_PROGRESS); @@ -893,7 +901,13 @@ BOOL CALLBACK ISOProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) iso_op_in_progress = TRUE; EnableWindow(GetDlgItem(hISOProgressDlg, IDC_ISO_ABORT), TRUE); CenterDialog(hDlg); - ShowWindow(hDlg, SW_SHOW); + // If we try to show the progress dialog while the app is minimized, users won't + // be able to restore the app, so we only show it if it isn't. But this workaround + // means that the progress dialog will never display for users who had the app + // minimized when ISO extraction started, which we don't really care about, since + // we're planning to remove the whole separate progress dialog soon anyway. + if (!IsIconic(hMainDialog)) + ShowWindow(hDlg, SW_SHOW); UpdateWindow(hDlg); return TRUE; case UM_PROGRESS_EXIT: diff --git a/src/rufus.rc b/src/rufus.rc index c256ba28..90954469 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 242, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Rufus 1.5.0.557" +CAPTION "Rufus 1.5.0.558" FONT 8, "Segoe UI", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,127,291,50,14 @@ -164,7 +164,7 @@ END IDD_DIALOG_XP DIALOGEX 12, 12, 242, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Rufus 1.5.0.557" +CAPTION "Rufus 1.5.0.558" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,127,291,50,14 @@ -297,7 +297,7 @@ END IDD_DIALOG_RTL DIALOGEX 12, 12, 242, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL -CAPTION "Rufus 1.5.0.557" +CAPTION "Rufus 1.5.0.558" FONT 8, "Segoe UI", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,127,291,50,14 @@ -437,7 +437,7 @@ END IDD_DIALOG_RTL_XP DIALOGEX 12, 12, 242, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_RTLREADING | WS_EX_APPWINDOW | WS_EX_LAYOUTRTL -CAPTION "Rufus 1.5.0.557" +CAPTION "Rufus 1.5.0.558" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,127,291,50,14 @@ -702,8 +702,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,5,0,557 - PRODUCTVERSION 1,5,0,557 + FILEVERSION 1,5,0,558 + PRODUCTVERSION 1,5,0,558 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -720,13 +720,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.5.0.557" + VALUE "FileVersion", "1.5.0.558" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2014 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.5.0.557" + VALUE "ProductVersion", "1.5.0.558" END END BLOCK "VarFileInfo"