Enabling garbage collection support.
[ITKit.git] / ITTransientStatusWindow.m
old mode 100755 (executable)
new mode 100644 (file)
index 3f01c35..24aa83b
@@ -86,6 +86,7 @@ static ITTransientStatusWindow *staticWindow = nil;
         _exitEffect          = nil;
         _reallyIgnoresEvents = YES;
         _exitTimer           = nil;
         _exitEffect          = nil;
         _reallyIgnoresEvents = YES;
         _exitTimer           = nil;
+               [self setScreen:[NSScreen mainScreen]];
 
 //      if ( _backgroundType == ITTransientStatusWindowRounded ) {
 //          _contentSubView = contentView;
 
 //      if ( _backgroundType == ITTransientStatusWindowRounded ) {
 //          _contentSubView = contentView;
@@ -101,30 +102,46 @@ static ITTransientStatusWindow *staticWindow = nil;
     return self;
 }
 
     return self;
 }
 
+- (void)dealloc
+{
+       [_screen release];
+       [super dealloc];
+}
 
 /*************************************************************************/
 #pragma mark -
 #pragma mark INSTANCE METHODS
 /*************************************************************************/
 
 
 /*************************************************************************/
 #pragma mark -
 #pragma mark INSTANCE METHODS
 /*************************************************************************/
 
-- (BOOL)ignoresMouseEvents
+/*- (BOOL)ignoresMouseEvents
 {
     return _reallyIgnoresEvents;
 }
 
 - (void)setIgnoresMouseEvents:(BOOL)flag
 {
 {
     return _reallyIgnoresEvents;
 }
 
 - (void)setIgnoresMouseEvents:(BOOL)flag
 {
-    CGSValueObj         key;
-    CGSValueObj         ignore;
+    //CGSValueObj       key;
+    //CGSValueObj       ignore;
+       CGSWindowTag tags;
 
     key = CGSCreateCString("IgnoreForEvents");
     ignore = CGSCreateBoolean( (flag ? kCGSTrue : kCGSFalse) );
     CGSSetWindowProperty([NSApp contextID], (CGSWindowID)[self windowNumber], key, ignore);
     CGSReleaseObj(key);
     CGSReleaseObj(ignore);
 
     key = CGSCreateCString("IgnoreForEvents");
     ignore = CGSCreateBoolean( (flag ? kCGSTrue : kCGSFalse) );
     CGSSetWindowProperty([NSApp contextID], (CGSWindowID)[self windowNumber], key, ignore);
     CGSReleaseObj(key);
     CGSReleaseObj(ignore);
+       
+       CGSGetWindowTags([NSApp contextID], (CGSWindowID)[self windowNumber], &tags, 32);
+
+       if (flag) {
+               tags = tags | CGSTagTransparent;
+       } else {
+               tags = tags & CGSTagTransparent;
+       }
+NSLog(@"ignore? %i", flag);
+       CGSSetWindowTags([NSApp contextID], (CGSWindowID)[self windowNumber], &tags, 32);
 
     _reallyIgnoresEvents = flag;
 
     _reallyIgnoresEvents = flag;
-}
+}*/
 
 /*
 
 
 /*
 
@@ -183,6 +200,17 @@ static ITTransientStatusWindow *staticWindow = nil;
     }
 }
 
     }
 }
 
+- (void)setScreen:(NSScreen *)newScreen
+{
+       [_screen release];
+       _screen = [newScreen retain];
+}
+
+- (NSScreen *)screen
+{
+       return _screen;
+}
+
 - (void)setSizing:(ITTransientStatusWindowSizing)newSizing
 {
     _sizing = newSizing;
 - (void)setSizing:(ITTransientStatusWindowSizing)newSizing
 {
     _sizing = newSizing;