Permalink
Browse files

Fix an erroneous check that would allow to close windows with only on…

…e tab even when it was busy (#2787)
  • Loading branch information...
dmoagx committed May 15, 2017
1 parent b50d4e9 commit 8fcdb7bcc6dedb7af9b1a7829a83cdc2fca54f4b
Showing with 10 additions and 13 deletions.
  1. +3 −4 Source/SPWindowController.m
  2. +7 −9 Source/SPWindowControllerDelegate.m
@@ -160,15 +160,14 @@ - (void)updateAllTabTitles:(id)sender
*/
- (IBAction)closeTab:(id)sender
{
// Return if the selected tab shouldn't be closed
if (![selectedTableDocument parentTabShouldClose]) return;
// If there are multiple tabs, close the front tab.
if ([tabView numberOfTabViewItems] > 1) {
// Return if the selected tab shouldn't be closed
if (![selectedTableDocument parentTabShouldClose]) return;
[tabView removeTabViewItem:[tabView selectedTabViewItem]];
}
else {
//trying to close the window will itself call parentTabShouldClose for all tabs in windowShouldClose:
[[self window] performClose:self];
}
}
@@ -56,15 +56,11 @@ @implementation SPWindowController (SPWindowControllerDelegate)
*/
- (BOOL)windowShouldClose:(id)sender
{
// Iterate through all tabs if more than one tab is opened only otherwise
// [... parentTabShouldClose] will be called twice [see self closeTab:(id)sender]
if ([[tabView tabViewItems] count] > 1) {
for (NSTabViewItem *eachItem in [tabView tabViewItems])
{
SPDatabaseDocument *eachDocument = [eachItem identifier];
if (![eachDocument parentTabShouldClose]) return NO;
}
for (NSTabViewItem *eachItem in [tabView tabViewItems])
{
SPDatabaseDocument *eachDocument = [eachItem identifier];
if (![eachDocument parentTabShouldClose]) return NO;
}
// Remove global session data if the last window of a session will be closed
@@ -190,6 +186,8 @@ - (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabVi
/**
* Called to determine whether a tab view item can be closed
*
* Note: This is ONLY called when using the "X" button on the tab itself.
*/
- (BOOL)tabView:(NSTabView *)aTabView shouldCloseTabViewItem:(NSTabViewItem *)tabViewItem
{

0 comments on commit 8fcdb7b

Please sign in to comment.