Making bevel a non-window-moving area for now, due to a glitch with using it in AG.
[ITKit.git] / ITWindowEffect.m
index d485df5..c1bdf0e 100755 (executable)
@@ -9,10 +9,11 @@
 {
     if ( (self = [super init]) ) {
     
-        _window         = [window retain];
-        _effectTime     = DEFAULT_EFFECT_TIME;
-        _effectProgress = 0.00;
-        _effectTimer    = nil;
+        _window                 = [window retain];
+        _effectTime             = DEFAULT_EFFECT_TIME;
+        _effectTimer            = nil;
+        __shouldReleaseWhenIdle = NO;
+        __idle                  = YES;
 
         if ( [window conformsToProtocol:@protocol(ITWindowPositioning)] ) {
                                                            // Casts so the compiler won't gripe
@@ -40,7 +41,7 @@
 
 - (void)setWindowVisibility:(ITWindowVisibilityState)visibilityState
 {
-    if ( [_window conformsToProtocol:@protocol(ITWindowVisibility)] ) {
+    if ( [_window conformsToProtocol:@protocol(ITWindowMotility)] ) {
        // Cast so the compiler won't gripe
         [(ITTransientStatusWindow *)_window setVisibilityState:visibilityState];
     } else {
     NSLog(@"ITWindowEffect does not implement cancelVanish.");
 }
 
+- (void)releaseWhenIdle;
+{
+    if ( __idle ) {
+        [self release];
+    } else {
+        __shouldReleaseWhenIdle = YES;
+    }
+}
+
 - (void)dealloc
 {
        [_window release];