Commit 99fb87d0 authored by Felix Paul Kühne's avatar Felix Paul Kühne

macosx: work-around incompatibility between custom code and Cocoa's own way of...

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
parent 64280ec9
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
NSSize nativeVideoSize; NSSize nativeVideoSize;
NSInteger i_originalLevel; NSInteger i_originalLevel;
NSString *o_previouslySavedFrame; NSRect previousSavedFrame;
} }
+ (VLCMainWindow *)sharedInstance; + (VLCMainWindow *)sharedInstance;
......
...@@ -73,11 +73,13 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -73,11 +73,13 @@ static VLCMainWindow *_o_sharedInstance = nil;
b_dark_interface = config_GetInt( VLCIntf, "macosx-interfacestyle" ); b_dark_interface = config_GetInt( VLCIntf, "macosx-interfacestyle" );
if (b_dark_interface) if (b_dark_interface)
{
#ifdef MAC_OS_X_VERSION_10_7 #ifdef MAC_OS_X_VERSION_10_7
styleMask = NSBorderlessWindowMask | NSResizableWindowMask; styleMask = NSBorderlessWindowMask | NSResizableWindowMask;
#else #else
styleMask = NSBorderlessWindowMask; styleMask = NSBorderlessWindowMask;
#endif #endif
}
self = [super initWithContentRect:contentRect styleMask:styleMask self = [super initWithContentRect:contentRect styleMask:styleMask
backing:backingType defer:flag]; backing:backingType defer:flag];
...@@ -700,7 +702,7 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -700,7 +702,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
* Felipe A. Rodriguez <far@ix.netcom.com>, Richard Frith-Macdonald <richard@brainstorm.co.uk> * Felipe A. Rodriguez <far@ix.netcom.com>, Richard Frith-Macdonald <richard@brainstorm.co.uk>
* Copyright (C) 1996 Free Software Foundation, Inc. * 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]; NSRect screenRect = [screen visibleFrame];
float difference; float difference;
...@@ -764,7 +766,7 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -764,7 +766,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
maxRect = [[self delegate] windowWillUseStandardFrame: self defaultFrame: maxRect]; 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 // Compare the new frame with the current one
if ((abs(NSMaxX(maxRect) - NSMaxX(currentFrame)) < DIST) if ((abs(NSMaxX(maxRect) - NSMaxX(currentFrame)) < DIST)
...@@ -775,7 +777,7 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -775,7 +777,7 @@ static VLCMainWindow *_o_sharedInstance = nil;
// Already in zoomed mode, reset user frame, if stored // Already in zoomed mode, reset user frame, if stored
if ([self frameAutosaveName] != nil) if ([self frameAutosaveName] != nil)
{ {
[self setFrameFromString: o_previouslySavedFrame]; [self setFrame: previousSavedFrame display: YES animate: YES];
[self saveFrameUsingName: [self frameAutosaveName]]; [self saveFrameUsingName: [self frameAutosaveName]];
} }
return; return;
...@@ -784,11 +786,10 @@ static VLCMainWindow *_o_sharedInstance = nil; ...@@ -784,11 +786,10 @@ static VLCMainWindow *_o_sharedInstance = nil;
if ([self frameAutosaveName] != nil) if ([self frameAutosaveName] != nil)
{ {
[self saveFrameUsingName: [self frameAutosaveName]]; [self saveFrameUsingName: [self frameAutosaveName]];
[o_previouslySavedFrame release]; previousSavedFrame = [self frame];
o_previouslySavedFrame = [[self stringWithSavedFrame] retain];
} }
[self setFrame: maxRect display: YES]; [self setFrame: maxRect display: YES animate: YES];
} }
#pragma mark - #pragma mark -
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment