diff --git a/mozilla/xpinstall/wizard/windows/setup/dialogs.c b/mozilla/xpinstall/wizard/windows/setup/dialogs.c index 04c87d102d9..75c3387ef87 100644 --- a/mozilla/xpinstall/wizard/windows/setup/dialogs.c +++ b/mozilla/xpinstall/wizard/windows/setup/dialogs.c @@ -819,7 +819,7 @@ LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lPara if(dwSetupType != ST_RADIO0) { ResetComponentAttributes(szFileIniConfig); - SiCNodeSetItemsSelected(diSetupType.stSetupType0.dwCItems, diSetupType.stSetupType0.dwCItemsSelected); + SiCNodeSetItemsSelected(ST_RADIO0, diSetupType.stSetupType0.dwCItems, diSetupType.stSetupType0.dwCItemsSelected); } dwSetupType = ST_RADIO0; @@ -830,7 +830,7 @@ LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lPara if(dwSetupType != ST_RADIO1) { ResetComponentAttributes(szFileIniConfig); - SiCNodeSetItemsSelected(diSetupType.stSetupType1.dwCItems, diSetupType.stSetupType1.dwCItemsSelected); + SiCNodeSetItemsSelected(ST_RADIO1, diSetupType.stSetupType1.dwCItems, diSetupType.stSetupType1.dwCItemsSelected); } dwSetupType = ST_RADIO1; @@ -841,7 +841,7 @@ LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lPara if(dwSetupType != ST_RADIO2) { ResetComponentAttributes(szFileIniConfig); - SiCNodeSetItemsSelected(diSetupType.stSetupType2.dwCItems, diSetupType.stSetupType2.dwCItemsSelected); + SiCNodeSetItemsSelected(ST_RADIO2, diSetupType.stSetupType2.dwCItems, diSetupType.stSetupType2.dwCItemsSelected); } dwSetupType = ST_RADIO2; @@ -852,7 +852,7 @@ LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lPara if(dwSetupType != ST_RADIO3) { ResetComponentAttributes(szFileIniConfig); - SiCNodeSetItemsSelected(diSetupType.stSetupType3.dwCItems, diSetupType.stSetupType3.dwCItemsSelected); + SiCNodeSetItemsSelected(ST_RADIO3, diSetupType.stSetupType3.dwCItems, diSetupType.stSetupType3.dwCItemsSelected); } dwSetupType = ST_RADIO3; diff --git a/mozilla/xpinstall/wizard/windows/setup/extra.c b/mozilla/xpinstall/wizard/windows/setup/extra.c index 1deb05d703e..d34a51ea772 100644 --- a/mozilla/xpinstall/wizard/windows/setup/extra.c +++ b/mozilla/xpinstall/wizard/windows/setup/extra.c @@ -2217,7 +2217,7 @@ BOOL IsInList(DWORD dwCurrentItem, DWORD dwItems, DWORD *dwItemsSelected) return(FALSE); } -void SiCNodeSetItemsSelected(DWORD dwItems, DWORD *dwItemsSelected) +void SiCNodeSetItemsSelected(DWORD dwSetupType, DWORD dwItems, DWORD *dwItemsSelected) { DWORD i; siC *siCTemp; @@ -2230,6 +2230,13 @@ void SiCNodeSetItemsSelected(DWORD dwItems, DWORD *dwItemsSelected) if((siCTemp->lRandomInstallPercentage != 0) && (siCTemp->lRandomInstallPercentage <= siCTemp->lRandomInstallValue)) siCTemp->dwAttributes &= ~SIC_SELECTED; + else if(sgProduct.dwCustomType != dwSetupType) + // If the user selected the Custom Setup Type, then do not set the + // Selected bit. Leave as default - which is what is set in + // config.ini originally. + // Else, make sure it's set because this component is listed in + // the dwSetupType's section to be installed. + siCTemp->dwAttributes |= SIC_SELECTED; } else siCTemp->dwAttributes &= ~SIC_SELECTED; @@ -4500,25 +4507,25 @@ HRESULT ParseConfigIni(LPSTR lpszCmdLine) { dwSetupType = ST_RADIO0; dwTempSetupType = dwSetupType; - SiCNodeSetItemsSelected(diSetupType.stSetupType0.dwCItems, diSetupType.stSetupType0.dwCItemsSelected); + SiCNodeSetItemsSelected(dwSetupType, diSetupType.stSetupType0.dwCItems, diSetupType.stSetupType0.dwCItemsSelected); } else if((lstrcmpi(szBuf, "Setup Type 1") == 0) && diSetupType.stSetupType1.bVisible) { dwSetupType = ST_RADIO1; dwTempSetupType = dwSetupType; - SiCNodeSetItemsSelected(diSetupType.stSetupType1.dwCItems, diSetupType.stSetupType1.dwCItemsSelected); + SiCNodeSetItemsSelected(dwSetupType, diSetupType.stSetupType1.dwCItems, diSetupType.stSetupType1.dwCItemsSelected); } else if((lstrcmpi(szBuf, "Setup Type 2") == 0) && diSetupType.stSetupType2.bVisible) { dwSetupType = ST_RADIO2; dwTempSetupType = dwSetupType; - SiCNodeSetItemsSelected(diSetupType.stSetupType2.dwCItems, diSetupType.stSetupType2.dwCItemsSelected); + SiCNodeSetItemsSelected(dwSetupType, diSetupType.stSetupType2.dwCItems, diSetupType.stSetupType2.dwCItemsSelected); } else if((lstrcmpi(szBuf, "Setup Type 3") == 0) && diSetupType.stSetupType3.bVisible) { dwSetupType = ST_RADIO3; dwTempSetupType = dwSetupType; - SiCNodeSetItemsSelected(diSetupType.stSetupType3.dwCItems, diSetupType.stSetupType3.dwCItemsSelected); + SiCNodeSetItemsSelected(dwSetupType, diSetupType.stSetupType3.dwCItems, diSetupType.stSetupType3.dwCItemsSelected); } else { @@ -4526,25 +4533,25 @@ HRESULT ParseConfigIni(LPSTR lpszCmdLine) { dwSetupType = ST_RADIO0; dwTempSetupType = dwSetupType; - SiCNodeSetItemsSelected(diSetupType.stSetupType0.dwCItems, diSetupType.stSetupType0.dwCItemsSelected); + SiCNodeSetItemsSelected(dwSetupType, diSetupType.stSetupType0.dwCItems, diSetupType.stSetupType0.dwCItemsSelected); } else if(diSetupType.stSetupType1.bVisible) { dwSetupType = ST_RADIO1; dwTempSetupType = dwSetupType; - SiCNodeSetItemsSelected(diSetupType.stSetupType1.dwCItems, diSetupType.stSetupType1.dwCItemsSelected); + SiCNodeSetItemsSelected(dwSetupType, diSetupType.stSetupType1.dwCItems, diSetupType.stSetupType1.dwCItemsSelected); } else if(diSetupType.stSetupType2.bVisible) { dwSetupType = ST_RADIO2; dwTempSetupType = dwSetupType; - SiCNodeSetItemsSelected(diSetupType.stSetupType2.dwCItems, diSetupType.stSetupType2.dwCItemsSelected); + SiCNodeSetItemsSelected(dwSetupType, diSetupType.stSetupType2.dwCItems, diSetupType.stSetupType2.dwCItemsSelected); } else if(diSetupType.stSetupType3.bVisible) { dwSetupType = ST_RADIO3; dwTempSetupType = dwSetupType; - SiCNodeSetItemsSelected(diSetupType.stSetupType3.dwCItems, diSetupType.stSetupType3.dwCItemsSelected); + SiCNodeSetItemsSelected(dwSetupType, diSetupType.stSetupType3.dwCItems, diSetupType.stSetupType3.dwCItemsSelected); } } diff --git a/mozilla/xpinstall/wizard/windows/setup/extra.h b/mozilla/xpinstall/wizard/windows/setup/extra.h index 71a3c4e452e..56e44e0458f 100644 --- a/mozilla/xpinstall/wizard/windows/setup/extra.h +++ b/mozilla/xpinstall/wizard/windows/setup/extra.h @@ -75,7 +75,7 @@ void SiCDepNodeDelete(siCD *siCDepTemp); void SiCDepNodeInsert(siCD **siCDepHead, siCD *siCDepTemp); HRESULT SiCNodeGetAttributes(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag); void SiCNodeSetAttributes(DWORD dwIndex, DWORD dwAttributes, BOOL bSet, BOOL bIncludeInvisible, DWORD dwACFlag); -void SiCNodeSetItemsSelected(DWORD dwItems, DWORD *dwItemsSelected); +void SiCNodeSetItemsSelected(DWORD dwSetupType, DWORD dwItems, DWORD *dwItemsSelected); char *SiCNodeGetDescriptionShort(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag); char *SiCNodeGetDescriptionLong(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag); siC *SiCNodeGetObject(DWORD dwIndex, BOOL bIncludeInvisibleObjs, DWORD dwACFlag);