X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=dll%2Fcpl%2Finput%2Fsettings.c;h=849d70cd62a96e5378d0b9b584a631ce06d1da7b;hp=393359dd7a2930e6c9c9b530ad25b45d17a2f0ed;hb=b1d8a4df819c95bcb81cd8d6e8d9a397125147a9;hpb=6c8e7899a94651ed4d25ef2f83d9c5ce1df23b4d diff --git a/dll/cpl/input/settings.c b/dll/cpl/input/settings.c index 393359dd7a2..849d70cd62a 100644 --- a/dll/cpl/input/settings.c +++ b/dll/cpl/input/settings.c @@ -10,11 +10,9 @@ * 06-09-2007 Created */ -#include "resource.h" #include "input.h" static HWND MainDlgWnd; -static HIMAGELIST hImgList; // for SaveInputLang() static INT OldLayoutNum; @@ -299,7 +297,7 @@ AddListColumn(HWND hWnd) } static VOID -InitLangList(HWND hWnd) +InitLangList(HWND hWnd, HIMAGELIST hImgList) { HKEY hKey, hSubKey; TCHAR szBuf[MAX_PATH], szPreload[CCH_LAYOUT_ID + 1], szSub[CCH_LAYOUT_ID + 1]; @@ -370,11 +368,19 @@ InitLangList(HWND hWnd) VOID UpdateLayoutsList(VOID) { - (VOID) ImageList_Destroy(hImgList); + HIMAGELIST hImgList; + + /* Clear the list */ (VOID) ListView_DeleteAllItems(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST)); + + /* Crate new list */ hImgList = ImageList_Create(16, 16, ILC_COLOR8 | ILC_MASK, 0, 1); - InitLangList(MainDlgWnd); - (VOID) ListView_SetImageList(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST), hImgList, LVSIL_SMALL); + InitLangList(MainDlgWnd, hImgList); + hImgList = ListView_SetImageList(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST), hImgList, LVSIL_SMALL); + + /* Destroy old image list */ + if(hImgList) + (VOID) ImageList_Destroy(hImgList); } typedef struct _REG_KB_ENTRY_ @@ -728,12 +734,14 @@ SettingPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { case WM_INITDIALOG: { + HIMAGELIST hImgList; + MainDlgWnd = hwndDlg; AddListColumn(hwndDlg); (VOID) ListView_SetExtendedListViewStyle(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST), LVS_EX_FULLROWSELECT); hImgList = ImageList_Create(16, 16, ILC_COLOR8 | ILC_MASK, 0, 1); - InitLangList(hwndDlg); + InitLangList(hwndDlg, hImgList); (VOID) ListView_SetImageList(GetDlgItem(MainDlgWnd, IDC_KEYLAYOUT_LIST), hImgList, LVSIL_SMALL); } break; @@ -781,7 +789,6 @@ SettingPageProc(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) } break; case WM_DESTROY: - (VOID) ImageList_Destroy(hImgList); break; }