Skip to content

Commit

Permalink
Mac: Fixed SDL_SetWindowSize to set the size of the content area of t…
Browse files Browse the repository at this point in the history
…he window, rather than the total size including decorations.
  • Loading branch information
slime73 committed Sep 9, 2015
1 parent c964ac9 commit 6a32ca7
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/video/cocoa/SDL_cocoawindow.m
Expand Up @@ -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);
}}
Expand Down

0 comments on commit 6a32ca7

Please sign in to comment.