aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPConnectionController.m
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2012-05-10 00:15:32 +0000
committerrowanbeentje <rowan@beent.je>2012-05-10 00:15:32 +0000
commit874a0b71c468118ca1337d61d93f84455cd7f65b (patch)
tree4628c477ec594d3a57898ff8386c8692fe346b62 /Source/SPConnectionController.m
parentcb23c164e9cdd7b235a7c00535fbb0f3de503aaf (diff)
downloadsequelpro-874a0b71c468118ca1337d61d93f84455cd7f65b.tar.gz
sequelpro-874a0b71c468118ca1337d61d93f84455cd7f65b.tar.bz2
sequelpro-874a0b71c468118ca1337d61d93f84455cd7f65b.zip
- Ensure the selected connection is correctly scrolled to on Lion, working around animation issues
Diffstat (limited to 'Source/SPConnectionController.m')
-rw-r--r--Source/SPConnectionController.m12
1 files changed, 11 insertions, 1 deletions
diff --git a/Source/SPConnectionController.m b/Source/SPConnectionController.m
index c9e07b31..9400f451 100644
--- a/Source/SPConnectionController.m
+++ b/Source/SPConnectionController.m
@@ -64,6 +64,7 @@ static NSString *SPExportFavoritesFilename = @"SequelProFavorites.plist";
- (void)_reloadFavoritesViewData;
- (void)_restoreConnectionInterface;
- (void)_selectNode:(SPTreeNode *)node;
+- (void)_scrollToSelectedNode;
- (void)_removeNode:(SPTreeNode *)node;
- (NSNumber *)_createNewFavoriteID;
@@ -1230,7 +1231,7 @@ static NSComparisonResult _compareFavoritesUsingKey(id favorite1, id favorite2,
{
[favoritesOutlineView reloadData];
[favoritesOutlineView expandItem:[[favoritesRoot childNodes] objectAtIndex:0] expandChildren:NO];
- [favoritesOutlineView scrollRowToVisible:[favoritesOutlineView selectedRow]];
+ [self _scrollToSelectedNode];
}
/**
@@ -1278,6 +1279,14 @@ static NSComparisonResult _compareFavoritesUsingKey(id favorite1, id favorite2,
- (void)_selectNode:(SPTreeNode *)node
{
[favoritesOutlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:[favoritesOutlineView rowForItem:node]] byExtendingSelection:NO];
+ [self _scrollToSelectedNode];
+}
+
+/**
+ * Scroll to the currently selected node.
+ */
+- (void)_scrollToSelectedNode
+{
[favoritesOutlineView scrollRowToVisible:[favoritesOutlineView selectedRow]];
}
@@ -1469,6 +1478,7 @@ static NSComparisonResult _compareFavoritesUsingKey(id favorite1, id favorite2,
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
+ [NSObject cancelPreviousPerformRequestsWithTarget:self];
// Unregister observers
[self removeObserver:self forKeyPath:SPFavoriteNameKey];