*/
private boolean textChangeEventPending;
+ private boolean isFiringTextChangeEvent = false;
+
private TextChangeEventMode textChangeEventMode = TextChangeEventMode.LAZY;
private final int DEFAULT_TEXTCHANGE_TIMEOUT = 400;
/* ** 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;
+ }
}
}
firePendingTextChangeEvent();
}
- /*
- * Reset lastKnownTextContent field on value change. We know the value
- * now.
- */
- lastKnownTextContent = null;
super.setInternalValue(newValue);
}