vlc/vlc-1.2 | branch: master | Felix Paul Kühne <[email protected]> | Sun Dec 25 13:09:59 2011 +0100| [d0510312aa4c70bd9f7d070a24aedf89f1520e66] | committer: Jean-Baptiste Kempf
macosx: work-around incompatibility between custom code and Cocoa's own way of doing things (fixes #5722) and use animations when zooming the main window in black mode (cherry picked from commit 99fb87d0ea60ba751a5c3eb88ff00cad139d8a7c) Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc/vlc-1.2.git/?a=commit;h=d0510312aa4c70bd9f7d070a24aedf89f1520e66 --- modules/gui/macosx/MainWindow.h | 2 +- modules/gui/macosx/MainWindow.m | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/modules/gui/macosx/MainWindow.h b/modules/gui/macosx/MainWindow.h index 69f997f..67ee648 100644 --- a/modules/gui/macosx/MainWindow.h +++ b/modules/gui/macosx/MainWindow.h @@ -113,7 +113,7 @@ NSSize nativeVideoSize; NSInteger i_originalLevel; - NSString *o_previouslySavedFrame; + NSRect previousSavedFrame; } + (VLCMainWindow *)sharedInstance; diff --git a/modules/gui/macosx/MainWindow.m b/modules/gui/macosx/MainWindow.m index c8e4009..df420a2 100644 --- a/modules/gui/macosx/MainWindow.m +++ b/modules/gui/macosx/MainWindow.m @@ -73,11 +73,13 @@ static VLCMainWindow *_o_sharedInstance = nil; b_dark_interface = config_GetInt( VLCIntf, "macosx-interfacestyle" ); if (b_dark_interface) + { #ifdef MAC_OS_X_VERSION_10_7 styleMask = NSBorderlessWindowMask | NSResizableWindowMask; #else styleMask = NSBorderlessWindowMask; #endif + } self = [super initWithContentRect:contentRect styleMask:styleMask backing:backingType defer:flag]; @@ -700,7 +702,7 @@ static VLCMainWindow *_o_sharedInstance = nil; * Felipe A. Rodriguez <[email protected]>, Richard Frith-Macdonald <[email protected]> * Copyright (C) 1996 Free Software Foundation, Inc. */ -- (NSRect) constrainFrameRect: (NSRect)frameRect toScreen: (NSScreen*)screen +- (NSRect) customConstrainFrameRect: (NSRect)frameRect toScreen: (NSScreen*)screen { NSRect screenRect = [screen visibleFrame]; float difference; @@ -764,7 +766,7 @@ static VLCMainWindow *_o_sharedInstance = nil; maxRect = [[self delegate] windowWillUseStandardFrame: self defaultFrame: maxRect]; } - maxRect = [self constrainFrameRect: maxRect toScreen: [self screen]]; + maxRect = [self customConstrainFrameRect: maxRect toScreen: [self screen]]; // Compare the new frame with the current one if ((abs(NSMaxX(maxRect) - NSMaxX(currentFrame)) < DIST) @@ -775,7 +777,7 @@ static VLCMainWindow *_o_sharedInstance = nil; // Already in zoomed mode, reset user frame, if stored if ([self frameAutosaveName] != nil) { - [self setFrameFromString: o_previouslySavedFrame]; + [self setFrame: previousSavedFrame display: YES animate: YES]; [self saveFrameUsingName: [self frameAutosaveName]]; } return; @@ -784,11 +786,10 @@ static VLCMainWindow *_o_sharedInstance = nil; if ([self frameAutosaveName] != nil) { [self saveFrameUsingName: [self frameAutosaveName]]; - [o_previouslySavedFrame release]; - o_previouslySavedFrame = [[self stringWithSavedFrame] retain]; + previousSavedFrame = [self frame]; } - [self setFrame: maxRect display: YES]; + [self setFrame: maxRect display: YES animate: YES]; } #pragma mark - _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
