in model/src/main/java/jetbrains/jetpad/model/event/Listeners.java [40:69]
public Registration add(final ListenerT l) {
if (isEmpty()) {
beforeFirstAdded();
}
if (myFireDepth > 0) {
myListeners.add(new ListenerOp<>(l, true));
} else {
if (myListeners == null) {
myListeners = new ArrayList<>(1);
}
myListeners.add(l);
myListenersCount++;
}
return new Registration() {
@Override
protected void doRemove() {
if (myFireDepth > 0) {
myListeners.add(new ListenerOp<>(l, false));
} else {
myListeners.remove(l);
myListenersCount--;
}
if (isEmpty()) {
afterLastRemoved();
}
}
};
}