<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -223,12 +223,11 @@ SC.ButtonView = SC.View.extend(SC.Control,
   keyEquivalent: null,
   
   /** @private {String} used to store a previously defined key equiv */
-  _lastKeyEquivalent: null,
+  _defaultKeyEquivalent: null,
   
   performKeyEquivalent: function( keystring, evt )
   {
     if (!this.get('isEnabled')) return false;
-    
     var keyEquivalent = this.get('keyEquivalent');
     if (keyEquivalent &amp;&amp; (keyEquivalent == keystring))
     {
@@ -266,6 +265,8 @@ SC.ButtonView = SC.View.extend(SC.Control,
   init: function() {
     arguments.callee.base.call(this) ;
     
+    //cache the key equivalent
+    if(this.get(&quot;keyEquivalent&quot;)) this._defaultKeyEquivalent = this.get(&quot;keyEquivalent&quot;); 
     // setup initial CSS clases
     this._isDefaultOrCancelObserver() ;
     
@@ -332,23 +333,20 @@ SC.ButtonView = SC.View.extend(SC.Control,
   _isDefaultOrCancelObserver: function() {
     var isDef = !!this.get('isDefault') ;
     var isCancel = !isDef &amp;&amp; this.get('isCancel') ;
+    
     if(this.didChangeFor('defaultCancelChanged','isDefault','isCancel')) {
       this.setClassName('def', isDef) ;
-      var key = this.get('keyEquivalent') ;
       if (isDef) {
-        //cache the previously defined key equivalent
-        this._lastKeyEquivalent = key;
         this.setIfChanged('keyEquivalent', 'return');
       } 
       else if (isCancel)
       {
-        //cache the previously defined key equivalent
-        this._lastKeyEquivalent = key;
         this.setIfChanged('keyEquivalent', 'escape') ;
       }
       else
       {
-        this.setIfChanged(&quot;keyEquivalent&quot;,this._lastKeyEquivalent);
+        //restore the default key equivalent
+        this.set(&quot;keyEquivalent&quot;,this._defaultKeyEquivalent);
       }
     }
       </diff>
      <filename>views/button/button.js</filename>
    </modified>
    <modified>
      <diff>@@ -1724,7 +1724,7 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate,
     // collection some basic setup info
     var selection  = this.get('selection') || [];
     var isSelected = selection.include(mouseDownContent);
-    var modifierKeyPressed = ev.ctrlKey || ev.altKey || ev.metaKey;
+    var modifierKeyPressed = ev.ctrlKey || ev.metaKey ;
     if (mouseDownView.checkboxView &amp;&amp; (Event.element(ev) == el.checkboxView.rootElement)) {
       modifierKeyPressed = true ;
     }
@@ -1736,7 +1736,6 @@ SC.CollectionView = SC.View.extend(SC.CollectionViewDelegate,
     // deselect that item...deselect and bail.
     if (modifierKeyPressed &amp;&amp; isSelected) {
       this._shouldDeselect = mouseDownContent;
-    
     // if the shiftKey was pressed, then we want to extend the selection
     // from the last selected item
     } else if (ev.shiftKey &amp;&amp; selection.get('length') &gt; 0) {</diff>
      <filename>views/collection/collection.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5ef8f40c4ff6c00ba9d0e870ad47515da1734b37</id>
    </parent>
    <parent>
      <id>456427c8b0f5795b47a12dee3fd0ec2ecef809fc</id>
    </parent>
  </parents>
  <author>
    <name>Charles Jolley</name>
    <email>charles@sproutit.com</email>
  </author>
  <url>http://github.com/sproutit/sproutcore/commit/73de53f8900074b4c0c42312ef1928c756c0aad2</url>
  <id>73de53f8900074b4c0c42312ef1928c756c0aad2</id>
  <committed-date>2008-06-06T11:01:23-07:00</committed-date>
  <authored-date>2008-06-06T11:01:23-07:00</authored-date>
  <message>Merge from remote</message>
  <tree>2f580e1e2774cb0e85b028bf300706b80d020990</tree>
  <committer>
    <name>Charles Jolley</name>
    <email>charles@sproutit.com</email>
  </committer>
</commit>
