diff --git a/src/MacVim/MMFullscreenWindow.m b/src/MacVim/MMFullscreenWindow.m index 2df3b48ae4..b366658d85 100644 --- a/src/MacVim/MMFullscreenWindow.m +++ b/src/MacVim/MMFullscreenWindow.m @@ -149,8 +149,10 @@ int fuRows = currRows, fuColumns = currColumns; + // NOTE: Do not use [NSScreen visibleFrame] when determining the screen + // size since it compensates for menu and dock. int maxRows, maxColumns; - NSSize size = [[self screen] visibleFrame].size; + NSSize size = [[self screen] frame].size; [view constrainRows:&maxRows columns:&maxColumns toSize:size]; // Store current pre-fu vim size diff --git a/src/MacVim/MMWindowController.m b/src/MacVim/MMWindowController.m index a81355d79c..0a2616b291 100644 --- a/src/MacVim/MMWindowController.m +++ b/src/MacVim/MMWindowController.m @@ -780,6 +780,8 @@ // change at any time (dock could move, resolution could change, window // could be moved to another screen, ...). + // NOTE: Not called in full-screen mode so use "visibleFrame" instead of + // "frame". NSRect maxFrame = [self constrainFrame:[[win screen] visibleFrame]]; if (proposedFrameSize.width > maxFrame.size.width) @@ -897,6 +899,8 @@ NSRect newFrame = [decoratedWindow frameRectForContentRect:contentRect]; // Ensure that the window fits inside the visible part of the screen. + // NOTE: Not called in full-screen mode so use "visisbleFrame' instead of + // "frame". NSRect maxFrame = [[decoratedWindow screen] visibleFrame]; maxFrame = [self constrainFrame:maxFrame]; @@ -921,8 +925,13 @@ - (NSSize)constrainContentSizeToScreenSize:(NSSize)contentSize { + // NOTE: This may be called in both windowed and full-screen mode. The + // "visibleFrame" method does not overlap menu and dock so should not be + // used in full-screen. NSWindow *win = [self window]; - NSRect rect = [win contentRectForFrameRect:[[win screen] visibleFrame]]; + NSRect screenRect = fullscreenEnabled ? [[win screen] frame] + : [[win screen] visibleFrame]; + NSRect rect = [win contentRectForFrameRect:screenRect]; if (contentSize.height > rect.size.height) contentSize.height = rect.size.height;