adium 3411:edeb312df198: This should prevent an account signing ...
commits at adium.im
commits at adium.im
Wed Oct 27 01:51:36 UTC 2010
details: http://hg.adium.im/adium/rev/edeb312df198
revision: 3411:edeb312df198
author: Evan Schoenberg
date: Tue Oct 26 20:51:16 2010 -0500
This should prevent an account signing off or a contact leaving a chat from making another account's signon take forever beecause the list object notification delay until inactivity was no longer active. Restore it when endListObjectNotificationsDelaysImmediately is called, if it was active before.
(transplanted from f314f15eef4c769fd030db864b88405fcdb29376)
diffs (40 lines):
diff -r 27408fe0c881 -r edeb312df198 Frameworks/Adium Framework/Source/AIContactObserverManager.m
--- a/Frameworks/Adium Framework/Source/AIContactObserverManager.m Mon Oct 25 20:31:29 2010 -0500
+++ b/Frameworks/Adium Framework/Source/AIContactObserverManager.m Tue Oct 26 20:51:16 2010 -0500
@@ -109,12 +109,8 @@
{
if (delayedUpdateRequests > 0) {
delayedUpdateRequests--;
- if (delayedUpdateRequests == 0) {
- if (delayedUpdateTimer)
- [delayedUpdateTimer invalidate]; self.delayedUpdateTimer = nil;
-
+ if (delayedUpdateRequests == 0)
[self _performDelayedUpdates:nil];
- }
}
}
@@ -132,10 +128,21 @@
*/
- (void)endListObjectNotificationsDelaysImmediately
{
+ RPLogWithSignature(@"");
+
if (delayedUpdateRequests) {
- delayedUpdateRequests = 0;
+ delayedUpdateRequests = 0;
+
+ BOOL restoreDelayUntilInactivity = (self.delayedUpdateTimer != nil);
+
[self.delayedUpdateTimer invalidate]; self.delayedUpdateTimer = nil;
[self _performDelayedUpdates:nil];
+
+ /* After immediately performing updates as requested, go back to delaying until inactivity if that was the
+ * status quo.
+ */
+ if (restoreDelayUntilInactivity)
+ [self delayListObjectNotificationsUntilInactivity];
}
}
More information about the commits
mailing list