Fixed bug 1105 (SDL_GetMouseState returns wrong location upon window re-activation)
This commit is contained in:
parent
7aadbd91ac
commit
04bd7cfffc
1 changed files with 13 additions and 1 deletions
|
@ -135,8 +135,20 @@ static __inline__ void ConvertNSRect(NSRect *r)
|
||||||
|
|
||||||
- (void)windowDidBecomeKey:(NSNotification *)aNotification
|
- (void)windowDidBecomeKey:(NSNotification *)aNotification
|
||||||
{
|
{
|
||||||
|
SDL_Window *window = _data->window;
|
||||||
|
|
||||||
/* We're going to get keyboard events, since we're key. */
|
/* We're going to get keyboard events, since we're key. */
|
||||||
SDL_SetKeyboardFocus(_data->window);
|
SDL_SetKeyboardFocus(window);
|
||||||
|
|
||||||
|
/* If we just gained focus we need the updated mouse position */
|
||||||
|
if (!(window->flags & SDL_WINDOW_FULLSCREEN)) {
|
||||||
|
NSPoint point;
|
||||||
|
point = [NSEvent mouseLocation];
|
||||||
|
point = [_data->nswindow convertScreenToBase:point];
|
||||||
|
point = [[_data->nswindow contentView] convertPoint:point fromView:nil];
|
||||||
|
point.y = window->h - point.y;
|
||||||
|
SDL_SendMouseMotion(window, 0, (int)point.x, (int)point.y);
|
||||||
|
}
|
||||||
|
|
||||||
/* Check to see if someone updated the clipboard */
|
/* Check to see if someone updated the clipboard */
|
||||||
Cocoa_CheckClipboardUpdate(_data->videodata);
|
Cocoa_CheckClipboardUpdate(_data->videodata);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue