diff --git a/mozilla/cck/ib/comp.cpp b/mozilla/cck/ib/comp.cpp index d788be40b6a..6f112086e6c 100644 --- a/mozilla/cck/ib/comp.cpp +++ b/mozilla/cck/ib/comp.cpp @@ -49,6 +49,8 @@ int BuildComponentList(COMPONENT *comps, int *compNum, CString iniSrcPath,int in comps[*compNum].selected = (strstr(attr, "SELECTED") != NULL); comps[*compNum].invisible = (strstr(attr, "INVISIBLE") != NULL); comps[*compNum].launchapp = (strstr(attr, "LAUNCHAPP") != NULL); + comps[*compNum].additional = (strstr(attr, "ADDITIONAL") != NULL); + if (!(comps[*compNum].selected && comps[*compNum].invisible && invisibleCount)) { diff --git a/mozilla/cck/ib/comp.h b/mozilla/cck/ib/comp.h index 4e25c930735..f8b69815fd5 100644 --- a/mozilla/cck/ib/comp.h +++ b/mozilla/cck/ib/comp.h @@ -6,6 +6,7 @@ typedef struct s_component { BOOL selected; BOOL invisible; BOOL launchapp; + BOOL additional; } COMPONENT; extern "C" __declspec(dllexport) diff --git a/mozilla/cck/ib/ib.cpp b/mozilla/cck/ib/ib.cpp index d4311be911f..f44d75ae26f 100644 --- a/mozilla/cck/ib/ib.cpp +++ b/mozilla/cck/ib/ib.cpp @@ -545,9 +545,16 @@ void init_components() // Turn off components that aren't selected for (i=0; ivalue, Components[i].name) == NULL) && (!(Components[i].selected && Components[i].invisible))) + { + if ((strstr(w->value, Components[i].name) == NULL)) + { + if (!(Components[i].selected && Components[i].invisible)) Components[i].selected = FALSE; - + } + else + if (Components[i].additional) + Components[i].selected = TRUE; + } } /*Post Beta - we will use the DISABLED key. Now this is implemented the round about way here. @@ -583,6 +590,8 @@ void invisible() Cee.Format("C%d", componentOrder); WritePrivateProfileString("Setup Type0",(LPCTSTR)Cee,(LPCTSTR)component, iniDstPath); WritePrivateProfileString("Setup Type1",(LPCTSTR)Cee,(LPCTSTR)component, iniDstPath); + if (Components[i].additional && !(Components[i].launchapp) && !(Components[i].invisible)) + WritePrivateProfileString(Components[i].compname, "Attributes", "SELECTED|ADDITIONAL", iniDstPath); componentOrder++; } else