diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/SPTableData.m | 3 | ||||
-rw-r--r-- | Source/TablesList.m | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/Source/SPTableData.m b/Source/SPTableData.m index 965ec042..520e0b25 100644 --- a/Source/SPTableData.m +++ b/Source/SPTableData.m @@ -338,7 +338,8 @@ tableName, [mySQLConnection getLastErrorMessage]]); // If the current table doesn't exist anymore reload table list if([mySQLConnection getLastErrorID] == 1146) { - [tableListInstance updateTables:nil]; + [[tableListInstance valueForKeyPath:@"tablesListView"] deselectAll:nil]; + [tableListInstance updateTables:self]; } } diff --git a/Source/TablesList.m b/Source/TablesList.m index a81c6d75..2a9a7657 100644 --- a/Source/TablesList.m +++ b/Source/TablesList.m @@ -221,7 +221,10 @@ [tablesListView reloadData]; // if the previous selected table still exists, select it - if( previousSelectedTable != nil && [tables indexOfObject:previousSelectedTable] < [tables count]) { + // but not if the update was called from SPTableData since it calls that method + // if a selected table doesn't exist - this happens if a table was deleted/renamed by an other user + // or if the table name contains characters which are not supported by the current set encoding + if( ![sender isKindOfClass:[SPTableData class]] && previousSelectedTable != nil && [tables indexOfObject:previousSelectedTable] < [tables count]) { NSInteger itemToReselect = [tables indexOfObject:previousSelectedTable]; tableListIsSelectable = YES; [tablesListView selectRowIndexes:[NSIndexSet indexSetWithIndex:itemToReselect] byExtendingSelection:NO]; |