Bug 38547 [Preferences] Changing preferences ignored after "Restore defaults" pressed.
e.g. 1) Go to Workbench->Preferences->Debug->Console 2) Change the colour of console output (you can show the console and see the colour change) and press "Apply" <don't leave the dialog> 3) Press "Restore Defaults" and "Apply" and the colour will be reset to default in the console 4) Now change the colour to something else and press "Apply" ... NO Change to the console colour. The problem can be seen in the PropertyChangeEvent that always contains the default values because once the "Restore Defaults" flag has been set it is never reset and therefore the "Apply" always sends the defaults.
bundles/org.eclipse.jface/src/org/eclipse/jface/preference/FieldEditorPreferencePage.java
/*******************************************************************************
 * Copyright (c) 2000, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.jface.preference;
import java.util.*;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
/**
 * A special abstract preference page to host field editors.
 * <p>
 * Subclasses must implement the <code>createFieldEditors</code> method
 * and should override <code>createLayout</code> if a special layout of the field
 * editors is needed.
 * </p>
 */
public abstract class FieldEditorPreferencePage extends PreferencePage implements IPropertyChangeListener {