diff --git a/reactos/dll/win32/devmgr/advprop.c b/reactos/dll/win32/devmgr/advprop.c index e1bfad607ed..f4b667d78ed 100644 --- a/reactos/dll/win32/devmgr/advprop.c +++ b/reactos/dll/win32/devmgr/advprop.c @@ -593,6 +593,7 @@ UpdateDevInfo(IN HWND hwndDlg, PSP_DEVINFO_DATA DeviceInfoData = NULL; PROPSHEETHEADER psh; DWORD nDriverPages = 0; + BOOL RecalcPages = FALSE; hPropSheetDlg = GetParent(hwndDlg); @@ -614,6 +615,7 @@ UpdateDevInfo(IN HWND hwndDlg, PropSheet_RemovePage(hPropSheetDlg, (WPARAM) -1, dap->DevPropSheets[iPage]); + RecalcPages = TRUE; } } } @@ -1023,8 +1025,11 @@ GetParentNode: iPage != nDriverPages; iPage++) { - PropSheet_AddPage(hPropSheetDlg, - dap->DevPropSheets[iPage]); + if (PropSheet_AddPage(hPropSheetDlg, + dap->DevPropSheets[iPage])) + { + RecalcPages = TRUE; + } } dap->FreeDevPropSheets = TRUE; @@ -1057,6 +1062,7 @@ GetParentNode: dap->DevPropSheets[iPage])) { iPage++; + RecalcPages = TRUE; } else { @@ -1070,6 +1076,11 @@ GetParentNode: dap->nDevPropSheets = 0; } + if (RecalcPages) + { + PropSheet_RecalcPageSizes(hPropSheetDlg); + } + /* finally, disable the apply button */ PropSheet_UnChanged(hPropSheetDlg, hwndDlg); diff --git a/reactos/include/psdk/prsht.h b/reactos/include/psdk/prsht.h index 286cde57380..ed7f087e4e1 100644 --- a/reactos/include/psdk/prsht.h +++ b/reactos/include/psdk/prsht.h @@ -307,6 +307,7 @@ int WINAPI PropertySheetW(LPCPROPSHEETHEADERW); #define PropSheet_SetTitle(d,w,s) SendMessage(d,PSM_SETTITLE,w,(LPARAM)s) #define PropSheet_SetWizButtons(d,f) PostMessage(d,PSM_SETWIZBUTTONS,0,(LPARAM)f) #define PropSheet_UnChanged(d,w) SendMessage(d,PSM_UNCHANGED,(WPARAM)w,0) +#define PropSheet_RecalcPageSizes(d) SendMessage(d,PSM_RECALCPAGESIZES,0,0) #endif #define WC_PROPSHEETA "SysPropertySheet"