diff --git a/macosx/AboutWindowController.mm b/macosx/AboutWindowController.mm index b69aec1ab..5af7d7e40 100644 --- a/macosx/AboutWindowController.mm +++ b/macosx/AboutWindowController.mm @@ -80,8 +80,7 @@ AboutWindowController* fAboutBoxInstance = nil; - (IBAction)hideLicense:(id)sender { - [self.fLicenseSheet orderOut:nil]; - [NSApp endSheet:self.fLicenseSheet]; + [self.window endSheet:self.fLicenseSheet]; } @end diff --git a/macosx/BlocklistDownloaderViewController.mm b/macosx/BlocklistDownloaderViewController.mm index 3d618b12a..b3c51fffa 100644 --- a/macosx/BlocklistDownloaderViewController.mm +++ b/macosx/BlocklistDownloaderViewController.mm @@ -90,16 +90,14 @@ BlocklistDownloaderViewController* fBLViewController = nil; - (void)setFinished { - [NSApp endSheet:self.fStatusWindow]; - [self.fStatusWindow orderOut:self]; + [self.fPrefsController.window endSheet:self.fStatusWindow]; fBLViewController = nil; } - (void)setFailed:(NSString*)error { - [NSApp endSheet:self.fStatusWindow]; - [self.fStatusWindow orderOut:self]; + [self.fPrefsController.window endSheet:self.fStatusWindow]; NSAlert* alert = [[NSAlert alloc] init]; [alert addButtonWithTitle:NSLocalizedString(@"OK", "Blocklist -> button")]; @@ -109,8 +107,6 @@ BlocklistDownloaderViewController* fBLViewController = nil; alert.informativeText = error; [alert beginSheetModalForWindow:self.fPrefsController.window completionHandler:^(NSModalResponse returnCode) { - [alert.window orderOut:self]; - fBLViewController = nil; }]; } diff --git a/macosx/CreatorWindowController.mm b/macosx/CreatorWindowController.mm index 4bd47f21e..acd191084 100644 --- a/macosx/CreatorWindowController.mm +++ b/macosx/CreatorWindowController.mm @@ -687,7 +687,6 @@ NSMutableSet* creatorWindowControllerSet = nil; alert.informativeText = [NSString stringWithFormat:@"%s (%d)", error->message, error->code]; [alert beginSheetModalForWindow:self.window completionHandler:^(NSModalResponse returnCode) { - [alert.window orderOut:nil]; [self.window close]; }]; tr_error_free(error); diff --git a/macosx/FileRenameSheetController.mm b/macosx/FileRenameSheetController.mm index ec00f0b87..2e95253c2 100644 --- a/macosx/FileRenameSheetController.mm +++ b/macosx/FileRenameSheetController.mm @@ -58,10 +58,11 @@ typedef void (^CompletionBlock)(BOOL); modalForWindow:(NSWindow*)window completionHandler:(void (^)(BOOL))completionHandler { + // we capture renamer strongly to avoid it being deallocated before completionHandler + __block FileRenameSheetController* strongRenamer = renamer; [window beginSheet:renamer.window completionHandler:^(NSModalResponse returnCode) { completionHandler(returnCode == NSModalResponseOK); - - [renamer.window orderOut:self]; + strongRenamer = nil; }]; } diff --git a/macosx/GroupsPrefsController.mm b/macosx/GroupsPrefsController.mm index 3aec4e2a4..38febed35 100644 --- a/macosx/GroupsPrefsController.mm +++ b/macosx/GroupsPrefsController.mm @@ -295,8 +295,7 @@ - (IBAction)cancelRules:(id)sender { - [self.groupRulesSheetWindow orderOut:nil]; - [NSApp endSheet:self.groupRulesSheetWindow]; + [self.fTableView.window endSheet:self.groupRulesSheetWindow]; NSInteger index = [GroupsController.groups indexForRow:self.fTableView.selectedRow]; if (![GroupsController.groups autoAssignRulesForIndex:index]) @@ -309,8 +308,7 @@ - (IBAction)saveRules:(id)sender { - [self.groupRulesSheetWindow orderOut:nil]; - [NSApp endSheet:self.groupRulesSheetWindow]; + [self.fTableView.window endSheet:self.groupRulesSheetWindow]; NSInteger index = [GroupsController.groups indexForRow:self.fTableView.selectedRow]; [GroupsController.groups setUsesAutoAssignRules:YES forIndex:index]; diff --git a/macosx/StatsWindowController.mm b/macosx/StatsWindowController.mm index 268e61ea3..462b1166b 100644 --- a/macosx/StatsWindowController.mm +++ b/macosx/StatsWindowController.mm @@ -159,8 +159,6 @@ tr_session* fLib = NULL; alert.showsSuppressionButton = YES; [alert beginSheetModalForWindow:self.window completionHandler:^(NSModalResponse returnCode) { - [alert.window orderOut:nil]; - if (alert.suppressionButton.state == NSControlStateValueOn) { [NSUserDefaults.standardUserDefaults setBool:NO forKey:@"WarningResetStats"]; diff --git a/macosx/URLSheetWindowController.mm b/macosx/URLSheetWindowController.mm index 3043e5503..91fa8170c 100644 --- a/macosx/URLSheetWindowController.mm +++ b/macosx/URLSheetWindowController.mm @@ -68,13 +68,11 @@ NSString* urlString = nil; - (void)openURLEndSheet:(id)sender { - [self.window orderOut:sender]; [NSApp endSheet:self.window returnCode:1]; } - (void)openURLCancelEndSheet:(id)sender { - [self.window orderOut:sender]; [NSApp endSheet:self.window returnCode:0]; }