mirror of
https://github.com/mpv-player/mpv
synced 2024-12-22 14:52:43 +00:00
cocoa_common: fix window positioning with --geometry
Regression since ff3b98d11c
. The window positioning code relied on the
visibleFrame's height without taking into account the dock's presence.
Also moved the constraining code to the proper method that overrides the
original NSWindow behaviour. This avoids having to check for border since the
constraining is performed by Cocoa only for titled windows.
Fixes #190
This commit is contained in:
parent
45365ad99f
commit
acbf5e826a
@ -762,20 +762,15 @@ int vo_cocoa_cgl_color_size(struct vo *vo)
|
|||||||
CGFloat dx = (f.size.width - ns.width) / 2;
|
CGFloat dx = (f.size.width - ns.width) / 2;
|
||||||
CGFloat dy = (f.size.height - ns.height - [self titleHeight]) / 2;
|
CGFloat dy = (f.size.height - ns.height - [self titleHeight]) / 2;
|
||||||
NSRect nf = NSRectFromCGRect(CGRectInset(NSRectToCGRect(f), dx, dy));
|
NSRect nf = NSRectFromCGRect(CGRectInset(NSRectToCGRect(f), dx, dy));
|
||||||
|
|
||||||
struct vo *vo = self.videoOutput;
|
|
||||||
if (!(vo && !vo->opts->border)) {
|
|
||||||
NSRect s = [[self screen] visibleFrame];
|
|
||||||
if (nf.origin.y + nf.size.height > s.origin.y + s.size.height)
|
|
||||||
nf.origin.y = s.size.height - nf.size.height;
|
|
||||||
}
|
|
||||||
|
|
||||||
[self setFrame:nf display:NO animate:NO];
|
[self setFrame:nf display:NO animate:NO];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSRect)constrainFrameRect:(NSRect)rect toScreen:(NSScreen *)screen
|
- (NSRect)constrainFrameRect:(NSRect)nf toScreen:(NSScreen *)screen
|
||||||
{
|
{
|
||||||
return rect;
|
NSRect s = [[self screen] visibleFrame];
|
||||||
|
if (nf.origin.y + nf.size.height > s.origin.y + s.size.height)
|
||||||
|
nf.origin.y = s.origin.y + s.size.height - nf.size.height;
|
||||||
|
return nf;
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
Loading…
Reference in New Issue
Block a user