import com.intellij.diff.requests.SimpleDiffRequest;
import com.intellij.diff.tools.binary.ThreesideBinaryDiffViewer;
import com.intellij.diff.tools.holders.BinaryEditorHolder;
+import com.intellij.openapi.diff.DiffBundle;
+import com.intellij.openapi.ui.Messages;
+import com.intellij.openapi.util.BooleanGetter;
import com.intellij.openapi.util.Disposer;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.CalledInAwt;
components.statusPanel = init.statusPanel;
components.toolbarActions = init.toolbarActions;
+ components.closeHandler = new BooleanGetter() {
+ @Override
+ public boolean get() {
+ return Messages.showYesNoDialog(getComponent().getRootPane(),
+ DiffBundle.message("merge.dialog.exit.without.applying.changes.confirmation.message"),
+ DiffBundle.message("cancel.visual.merge.dialog.title"), Messages.getQuestionIcon()) == Messages.YES;
+ }
+ };
+
return components;
}
return new AbstractAction(caption) {
@Override
public void actionPerformed(ActionEvent e) {
+ if (result == MergeResult.CANCEL) {
+ if (Messages.showYesNoDialog(getComponent().getRootPane(),
+ DiffBundle.message("merge.dialog.exit.without.applying.changes.confirmation.message"),
+ DiffBundle.message("cancel.visual.merge.dialog.title"), Messages.getQuestionIcon()) != Messages.YES) {
+ return;
+ }
+ }
+
myMergeContext.finishMerge(result);
}
};