Fix an off-by-one error. Make the popover work correctly when conflicts occur.
[enjoyable.git] / Classes / NJMappingsController.m
index 531de12..4859970 100644 (file)
     NSDictionary *userInfo = CFBridgingRelease(contextInfo);
     NJMapping *oldMapping = userInfo[@"old mapping"];
     NJMapping *newMapping = userInfo[@"new mapping"];
     NSDictionary *userInfo = CFBridgingRelease(contextInfo);
     NJMapping *oldMapping = userInfo[@"old mapping"];
     NJMapping *newMapping = userInfo[@"new mapping"];
+    [alert.window orderOut:nil];
     switch (returnCode) {
         case NSAlertFirstButtonReturn: // Merge
             [oldMapping mergeEntriesFrom:newMapping];
     switch (returnCode) {
         case NSAlertFirstButtonReturn: // Merge
             [oldMapping mergeEntriesFrom:newMapping];
         case NSAlertThirdButtonReturn: // New Mapping
             [self.mvc.mappingList beginUpdates];
             [_mappings addObject:newMapping];
         case NSAlertThirdButtonReturn: // New Mapping
             [self.mvc.mappingList beginUpdates];
             [_mappings addObject:newMapping];
-            [self.mvc addedMappingAtIndex:_mappings.count - 1 startEditing:NO];
+            [self.mvc addedMappingAtIndex:_mappings.count - 1 startEditing:YES];
             [self.mvc.mappingList endUpdates];
             [self activateMapping:newMapping];
             [self mappingsChanged];
             [self.mvc.mappingList endUpdates];
             [self activateMapping:newMapping];
             [self mappingsChanged];
             [self mappingsChanged];
         } else {
             if (idx == -1)
             [self mappingsChanged];
         } else {
             if (idx == -1)
-                idx = _mappings.count - 1;
+                idx = _mappings.count;
             [self.mvc.mappingList beginUpdates];
             [_mappings insertObject:mapping atIndex:idx];
             [self.mvc addedMappingAtIndex:idx startEditing:NO];
             [self.mvc.mappingList beginUpdates];
             [_mappings insertObject:mapping atIndex:idx];
             [self.mvc addedMappingAtIndex:idx startEditing:NO];