default void addVisibleAreaListener(@NotNull VisibleAreaListener listener, @NotNull Disposable disposable) {
    addVisibleAreaListener(listener);
    Disposer.register(disposable, () -> removeVisibleAreaListener(listener));
  }
default void addVisibleAreaListener(@NotNull VisibleAreaListener listener, @NotNull Disposable disposable)