Cocoa: Keep the window's screen position through SDL_SetWindowSize().

The Y coordinate is flipped in Cocoa, so if you change the height, the window
will move and maybe clip against the screen edge if you don't adjust its Y
coordinate to match.

Possibly fixes Bugzilla #3066.
Ryan C. Gordon 2015-08-14 01:20:41 -04:00
parent f2f8e6f5ef
commit 9e2b90e2a4
1 changed files with 6 additions and 4 deletions

View File

@ -1288,11 +1288,13 @@ Cocoa_SetWindowSize(_THIS, SDL_Window * window)
{
SDL_WindowData *windata = (SDL_WindowData *) window->driverdata;
NSWindow *nswindow = windata->nswindow;
NSSize size;
size.width = window->w;
size.height = window->h;
[nswindow setContentSize:size];
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;
[nswindow setFrame:frame display:YES];
ScheduleContextUpdates(windata);
}}