瀏覽代碼

Fix ObservableController to not re-emit notification by accident when receiving an external signal.

Sam Jaffe 5 年之前
父節點
當前提交
a24e472519
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      src/main/lombok/org/leumasjaffe/observer/ObservableController.java

+ 4 - 1
src/main/lombok/org/leumasjaffe/observer/ObservableController.java

@@ -41,7 +41,10 @@ public class ObservableController<S extends JTextComponent, T extends Observable
 	
 	public ObservableController(final S comp, final Function<T, String> get,
 			final BiConsumer<T, String> set, final BiConsumer<? super S, String> update) {
-		super(comp, (c, u) -> update.accept(c, get.apply(u)));
+		super(comp, (c, u) -> {
+			if (c.getText().equals(get.apply(u))) return;
+			update.accept(c, get.apply(u));
+		});
 		this.func = (t, u) -> {
 			if (t.equals(get.apply(u))) return false;
 			set.accept(u, t);