diff --git a/platform/platform-impl/src/com/intellij/ui/mac/MacMessagesImpl.java b/platform/platform-impl/src/com/intellij/ui/mac/MacMessagesImpl.java index b9cf1e39fdb7..3954b2b3579b 100644 --- a/platform/platform-impl/src/com/intellij/ui/mac/MacMessagesImpl.java +++ b/platform/platform-impl/src/com/intellij/ui/mac/MacMessagesImpl.java @@ -120,6 +120,8 @@ public class MacMessagesImpl extends MacMessages { // invoke(invoke(alert, "buttons"), "objectAtIndex:", count == 1 ? 0 : 1)); //} + enableEscapeToCloseTheMessage(alert); + String doNotAsk = toStringViaUTF8(doNotAskText); if (!"-1".equals(doNotAsk)) { invoke(alert, "setShowsSuppressionButton:", 1); @@ -161,10 +163,10 @@ public class MacMessagesImpl extends MacMessages { //invoke(window, "makeFirstResponder:", // invoke(invoke(alert, "buttons"), "objectAtIndex:", alternateExist ? 2 : otherExist ? 1 : 0)); // - ////it is impossible to override ESCAPE key behavior -> key should be named "Cancel" to be bound to ESC - //if (!alternateExist) { - // invoke(invoke(invoke(alert, "buttons"), "objectAtIndex:", 1), "setKeyEquivalent:", nsString("\\e")); - //} + + if (!alternateExist) { + enableEscapeToCloseTheMessage(alert); + } String doNotAsk = toStringViaUTF8(doNotAskText); if (!"-1".equals(doNotAsk)) { @@ -200,6 +202,11 @@ public class MacMessagesImpl extends MacMessages { } } + private static ID enableEscapeToCloseTheMessage(ID alert) { + return invoke(invoke(invoke(alert, "buttons"), "objectAtIndex:", + invoke(invoke(alert, "buttons"), "count").intValue() - 1), "setKeyEquivalent:", nsString("\033")); + } + private MacMessagesImpl() {} private static final Callback windowDidBecomeMainCallback = new Callback() {