diff --git a/platform/diff-api/src/com/intellij/openapi/diff/DirDiffManager.java b/platform/diff-api/src/com/intellij/openapi/diff/DirDiffManager.java index 35959cb2296c..12f0e168e9fe 100644 --- a/platform/diff-api/src/com/intellij/openapi/diff/DirDiffManager.java +++ b/platform/diff-api/src/com/intellij/openapi/diff/DirDiffManager.java @@ -31,7 +31,7 @@ public abstract class DirDiffManager { return ServiceManager.getService(project, DirDiffManager.class); } - public abstract void showDiff(@NotNull DiffElement dir1, @NotNull DiffElement dir2, DirDiffSettings settings, @Nullable Runnable onWindowClose); + public abstract void showDiff(@NotNull DiffElement dir1, @NotNull DiffElement dir2, DirDiffSettings settings, @Nullable Runnable onWindowClosing); public abstract void showDiff(@NotNull DiffElement dir1, @NotNull DiffElement dir2, DirDiffSettings settings); diff --git a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffManagerImpl.java b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffManagerImpl.java index ed7689267396..c4c605fcae29 100644 --- a/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffManagerImpl.java +++ b/platform/diff-impl/src/com/intellij/openapi/diff/impl/dir/DirDiffManagerImpl.java @@ -43,18 +43,18 @@ public class DirDiffManagerImpl extends DirDiffManager { public void showDiff(@NotNull final DiffElement dir1, @NotNull final DiffElement dir2, final DirDiffSettings settings, - @Nullable final Runnable onWindowClose) { + @Nullable final Runnable onWindowClosing) { final DirDiffTableModel model = new DirDiffTableModel(myProject, dir1, dir2, settings); if (settings.showInFrame) { DirDiffFrame frame = new DirDiffFrame(myProject, model); - setWindowListener(onWindowClose, frame.getFrame()); + setWindowListener(onWindowClosing, frame.getFrame()); frame.show(); } else { DirDiffDialog dirDiffDialog = new DirDiffDialog(myProject, model); if (myProject == null || myProject.isDefault()/* || isFromModalDialog(myProject)*/) { dirDiffDialog.setModal(true); } - setWindowListener(onWindowClose, dirDiffDialog.getOwner()); + setWindowListener(onWindowClosing, dirDiffDialog.getOwner()); dirDiffDialog.show(); } } @@ -68,12 +68,12 @@ public class DirDiffManagerImpl extends DirDiffManager { return false; } - private void setWindowListener(final Runnable onWindowClose, final Window window) { - if (onWindowClose != null) { + private void setWindowListener(final Runnable onWindowClosing, final Window window) { + if (onWindowClosing != null) { window.addWindowListener(new WindowAdapter() { @Override - public void windowClosed(WindowEvent e) { - onWindowClose.run(); + public void windowClosing(WindowEvent e) { + onWindowClosing.run(); window.removeWindowListener(this); } });