From a2891d12899c1160b9fcd9b9b195d7d8ee354cb7 Mon Sep 17 00:00:00 2001 From: Kent Sutherland Date: Wed, 30 Mar 2011 02:50:53 -0400 Subject: [PATCH] Reset the screen that the status window is on when the system's screens change. --- StatusWindowController.m | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/StatusWindowController.m b/StatusWindowController.m index 2e4593e..aa684a3 100755 --- a/StatusWindowController.m +++ b/StatusWindowController.m @@ -98,6 +98,8 @@ static StatusWindowController *sharedController; } else { [(ITTSWBackgroundView *)[_window contentView] setBackgroundColor:[NSColor blueColor]]; } + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenParametersChanged:) name:NSApplicationDidChangeScreenParametersNotification object:nil]; } return self; @@ -105,10 +107,23 @@ static StatusWindowController *sharedController; - (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; + [_window release]; [super dealloc]; } +- (void)screenParametersChanged:(NSNotification *)notification +{ + NSArray *screens = [NSScreen screens]; + int screenIndex = [df integerForKey:@"statusWindowScreenIndex"]; + + if (screenIndex >= [screens count]) { + screenIndex = 0; + } + [_window setScreen:[screens objectAtIndex:screenIndex]]; +} + - (void)showSongInfoWindowWithSource:(ITMTRemotePlayerSource)source title: (NSString *)title album: (NSString *)album -- 2.20.1