From 17af27bc7fa82030084c3c3065f9516bfb88a899 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Mon, 13 Aug 2018 14:52:52 +0200 Subject: Windows: code enhancements for language selection mechanism in the installer. --- src/Setup/Setup.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/Setup/Setup.c') diff --git a/src/Setup/Setup.c b/src/Setup/Setup.c index 986bc122..3c638364 100644 --- a/src/Setup/Setup.c +++ b/src/Setup/Setup.c @@ -2414,10 +2414,15 @@ static void UpdateSelectLanguageDialog (HWND hwndDlg) HWND hLangList = GetDlgItem (hwndDlg, IDC_LANGUAGES_LIST); LPARAM nIndex = SendMessage (hLangList, CB_GETCURSEL, 0, 0); int resourceid = (int) SendMessage (hLangList, CB_GETITEMDATA, nIndex, 0); + BOOL bVal; LoadLanguageFromResource (resourceid, TRUE, TRUE); + bVal = LocalizationActive; + LocalizationActive = TRUE; LocalizeDialog (hwndDlg, "IDD_INSTL_DLG"); + InvalidateRect (hwndDlg, NULL, FALSE); + LocalizationActive = bVal; } BOOL CALLBACK SelectLanguageDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) @@ -2660,7 +2665,15 @@ int WINAPI wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, wchar_t *lpsz { if (!bDevm && !LocalizationActive && (nCurrentOS >= WIN_VISTA)) { - DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_INSTALL_LANGUAGE), NULL, (DLGPROC) SelectLanguageDialogProc, (LPARAM) 0 ); + BOOL bHasPreferredLanguage = (strlen (GetPreferredLangId ()) > 0)? TRUE : FALSE; + if ((IDCANCEL == DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_INSTALL_LANGUAGE), NULL, (DLGPROC) SelectLanguageDialogProc, (LPARAM) 0 )) + && !bHasPreferredLanguage + ) + { + // Language dialog cancelled by user: exit the installer + FinalizeApp (); + exit (1); + } } /* Create the main dialog for install */ -- cgit v1.2.3