bug 137058 - disabling project-specific settings wasn't deleting generated files.
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
index 4cf7a2f..d902e24 100644
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
+++ b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
@@ -320,7 +320,8 @@
 	@Override
 	protected void saveSettings() {
 		List<ProcessorOption> elements;
-		if ((fJProj != null) && !fBlockControl.isEnabled()) {
+		boolean isProjSpecificDisabled = (fJProj != null) && !fBlockControl.isEnabled();
+		if (isProjSpecificDisabled) {
 			// We're in a project properties pane but the entire configuration 
 			// block control is disabled.  That means the per-project settings checkbox 
 			// is unchecked.  To save that state, we'll clear the proc options map.
@@ -332,10 +333,20 @@
 		saveProcessorOptions(elements);
 		super.saveSettings();
 		if (null != fAptProject) {
-			if (!fOriginalGenSrcDir.equals(fGenSrcDirField.getText()))
-				fAptProject.preferenceChanged(AptPreferenceConstants.APT_GENSRCDIR);
-			if (fOriginalAptEnabled != fAptEnabledField.isSelected())
-				fAptProject.preferenceChanged(AptPreferenceConstants.APT_ENABLED);
+			if (isProjSpecificDisabled) { // compare against workspace defaults
+				if (!fOriginalGenSrcDir.equals(AptConfig.getGenSrcDir(null))) {
+					fAptProject.preferenceChanged(AptPreferenceConstants.APT_GENSRCDIR);
+				}
+				if (fOriginalAptEnabled != AptConfig.isEnabled(null)) {
+					fAptProject.preferenceChanged(AptPreferenceConstants.APT_ENABLED);
+				}
+			}
+			else { // compare against current settings
+				if (!fOriginalGenSrcDir.equals(fGenSrcDirField.getText()))
+					fAptProject.preferenceChanged(AptPreferenceConstants.APT_GENSRCDIR);
+				if (fOriginalAptEnabled != fAptEnabledField.isSelected())
+					fAptProject.preferenceChanged(AptPreferenceConstants.APT_ENABLED);
+			}
 		}
 	}