aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/vaadin/ui/AbstractTextField.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/com/vaadin/ui/AbstractTextField.java b/src/com/vaadin/ui/AbstractTextField.java
index 3bfeabd33f..346d370bd5 100644
--- a/src/com/vaadin/ui/AbstractTextField.java
+++ b/src/com/vaadin/ui/AbstractTextField.java
@@ -70,6 +70,8 @@ public abstract class AbstractTextField extends AbstractField implements
*/
private boolean textChangeEventPending;
+ private boolean isFiringTextChangeEvent = false;
+
private TextChangeEventMode textChangeEventMode = TextChangeEventMode.LAZY;
private final int DEFAULT_TEXTCHANGE_TIMEOUT = 400;
@@ -449,9 +451,14 @@ public abstract class AbstractTextField extends AbstractField implements
/* ** Text Change Events ** */
private void firePendingTextChangeEvent() {
- if (textChangeEventPending) {
+ if (textChangeEventPending && !isFiringTextChangeEvent) {
+ isFiringTextChangeEvent = true;
textChangeEventPending = false;
- fireEvent(new TextChangeEventImpl(this));
+ try {
+ fireEvent(new TextChangeEventImpl(this));
+ } finally {
+ isFiringTextChangeEvent = false;
+ }
}
}
@@ -494,11 +501,6 @@ public abstract class AbstractTextField extends AbstractField implements
firePendingTextChangeEvent();
}
- /*
- * Reset lastKnownTextContent field on value change. We know the value
- * now.
- */
- lastKnownTextContent = null;
super.setInternalValue(newValue);
}