void (@NotNull TextMergeChange change) { if (change.isResolved()) { onChangeRemoved(change); } else { onChangeAdded(change); } if (getChangesCount() == 0 && getConflictsCount() == 0) { LOG.assertTrue(ContainerUtil.and(getAllChanges(), TextMergeChange::isResolved)); ApplicationManager.getApplication().invokeLater(() -> { if (isDisposed()) return; JComponent component = getEditor().getComponent(); RelativePoint point = new RelativePoint(component, new Point(component.getWidth() / 2, JBUIScale.scale(5))); String message = DiffBundle.message("merge.all.changes.processed.message.text"); DiffUtil.showSuccessPopup(message, point, this, () -> { if (isDisposed() || myLoadingPanel.isLoading()) return; destroyChangedBlocks(); myMergeContext.finishMerge(MergeResult.RESOLVED); }); }); } }