diff --git a/MacPass/MPAppDelegate.m b/MacPass/MPAppDelegate.m index 8ba9ef59..f8608507 100644 --- a/MacPass/MPAppDelegate.m +++ b/MacPass/MPAppDelegate.m @@ -216,7 +216,7 @@ NSString *const MPHelpURLKey = @"MPHelpURL"; - (void)lockAllDocuments { for(NSDocument *document in ((NSDocumentController *)[NSDocumentController sharedDocumentController]).documents) { - for(id windowController in document.windowControllers) { + for(id windowController in [document.windowControllers reverseObjectEnumerator]) { if([windowController respondsToSelector:@selector(lock:)]) { [windowController lock:self]; } diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index f32a7e4d..b331ba65 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -661,7 +661,6 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGrou - (KPKAttribute *)createCustomAttribute:(KPKEntry *)entry { NSString *title = NSLocalizedString(@"DEFAULT_CUSTOM_FIELD_TITLE", @"Default Titel for new Custom-Fields"); NSString *value = NSLocalizedString(@"DEFAULT_CUSTOM_FIELD_VALUE", @"Default Value for new Custom-Fields"); - title = [entry proposedKeyForAttributeKey:title]; KPKAttribute *newAttribute = [[KPKAttribute alloc] initWithKey:title value:value]; [entry addCustomAttribute:newAttribute]; return newAttribute; diff --git a/MacPass/MPDocumentWindowController.m b/MacPass/MPDocumentWindowController.m index b1dfe5d1..d9b9179c 100644 --- a/MacPass/MPDocumentWindowController.m +++ b/MacPass/MPDocumentWindowController.m @@ -525,16 +525,23 @@ typedef void (^MPPasswordChangedBlock)(BOOL didChangePassword); [alert addButtonWithTitle:NSLocalizedString(@"CHANGE_PASSWORD_WITH_DOTS", "")]; [alert beginSheetModalForWindow:[self.document windowForSheet] completionHandler:^(NSModalResponse returnCode) { + /* if sheet was stopped any other way, do nothing */ + if(returnCode != NSAlertFirstButtonReturn) { + return; + } dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self editPasswordWithCompetionHandler:^(NSInteger result) { /* if password was changed, reset change key and dismiss */ if(NSModalResponseOK == result) { document.tree.metaData.enforceMasterKeyChangeOnce = NO; } - else { + else if(NSModalResponseCancel) { /* password was not changes, so keep nagging the user! */ [self _presentPasswordIntervalAlerts]; } + else { + // We might have been killed by locking so do nothing! + } }]; }); }];