Bug 198101 [DataBinding] ComboObservableValue fails to clear cached value
ComboObservableValue fails to update cached currentValue during the doSetValue(...) call. As the result, event may not fire if the next combo selection happens to be the same as cached value. Proposed change (new lines end with // FIX): public void modifyText(ModifyEvent e) { if (!updating) { String oldValue = currentValue; currentValue = ComboObservableValue.this.combo.getText(); fireValueChange(Diffs.createValueDiff(oldValue, currentValue)); } else // FIX currentValue = ComboObservableValue.this.combo.getText(); // FIX
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/internal/swt/CComboObservableValue.java
/**
	 * 
	 */
	private final CCombo ccombo;
	private final String attribute;
	private boolean updating = false;
	private String currentValue;
	private ModifyListener modifyListener;
	/**
	 * @param ccombo
	 * @param attribute
	 */
	public CComboObservableValue(CCombo ccombo, String attribute) {
		super(ccombo);
		this.ccombo = ccombo;
		this.attribute = attribute;
		init();
	}
	/**
	 * @param realm
	 * @param ccombo
	 * @param attribute
	 */
	public CComboObservableValue(Realm realm, CCombo ccombo, String attribute) {
		super(realm, ccombo);
		this.ccombo = ccombo;
		this.attribute = attribute;
		init();
	}