ModalityStateEx (@NotNull Window window) { return ourWindowModalities.computeIfAbsent(window, __ -> { synchronized (ourModalityStack) { for (ModalityStateEx state : ourModalityStack) { if (state.contains(window)) { return state; } } } Window owner = window.getOwner(); ModalityStateEx ownerState = owner == null ? (ModalityStateEx)ModalityState.nonModal() : modalityStateForWindow(owner); return isModalDialog(window) ? ownerState.appendEntity(window) : ownerState; }); }