Skip to content
Permalink
Browse files

Mac: Fixed SDL_SetWindowSize to set the size of the content area of t…

…he window, rather than the total size including decorations.
  • Loading branch information
slime73 committed Sep 9, 2015
1 parent c964ac9 commit 6a32ca7a3919fa6cb2956bd09bcde39f4f313741
Showing with 15 additions and 5 deletions.
  1. +15 −5 src/video/cocoa/SDL_cocoawindow.m
@@ -1288,13 +1288,23 @@ - (void)resetCursorRects
{
SDL_WindowData *windata = (SDL_WindowData *) window->driverdata;
NSWindow *nswindow = windata->nswindow;
NSRect rect;
Uint32 moveHack;

NSRect frame = [nswindow frame];
frame.origin.y = (frame.origin.y + frame.size.height) - ((float) window->h);
frame.size.width = window->w;
frame.size.height = window->h;
/* Cocoa will resize the window from the bottom-left rather than the
* top-left when -[nswindow setContentSize:] is used, so we must set the
* entire frame based on the new size, in order to preserve the position.
*/
rect.origin.x = window->x;
rect.origin.y = window->y;
rect.size.width = window->w;
rect.size.height = window->h;
ConvertNSRect([nswindow screen], (window->flags & FULLSCREEN_MASK), &rect);

[nswindow setFrame:frame display:YES];
moveHack = s_moveHack;
s_moveHack = 0;
[nswindow setFrame:[nswindow frameRectForContentRect:rect] display:YES];
s_moveHack = moveHack;

ScheduleContextUpdates(windata);
}}

0 comments on commit 6a32ca7

Please sign in to comment.