# HG changeset patch # User Sam Lantinga # Date 1073857393 0 # Node ID dbc5905402b0eba0cda693741696ecc37eeeb2bb # Parent 67176351a1b809e27d1a98e57807b76939ba2c87 *** empty log message *** diff -r 67176351a1b8 -r dbc5905402b0 src/video/quartz/SDL_QuartzEvents.m --- a/src/video/quartz/SDL_QuartzEvents.m Thu Jan 08 16:01:07 2004 +0000 +++ b/src/video/quartz/SDL_QuartzEvents.m Sun Jan 11 21:43:13 2004 +0000 @@ -303,6 +303,13 @@ current_mods = newMods; } +static void QZ_GetMouseLocation (_THIS, NSPoint *p) { + *p = [ NSEvent mouseLocation ]; /* global coordinates */ + if (qz_window) + QZ_PrivateGlobalToLocal (this, p); + QZ_PrivateCocoaToSDL (this, p); +} + static void QZ_DoActivate (_THIS) { /* Hide the cursor if it was hidden by SDL_ShowCursor() */ @@ -321,10 +328,7 @@ static void QZ_DoDeactivate (_THIS) { /* Get the current cursor location, for restore on activate */ - cursor_loc = [ NSEvent mouseLocation ]; /* global coordinates */ - if (qz_window) - QZ_PrivateGlobalToLocal (this, &cursor_loc); - QZ_PrivateCocoaToSDL (this, &cursor_loc); + QZ_GetMouseLocation (this, &cursor_loc); /* Reassociate mouse and cursor */ CGAssociateMouseAndMouseCursorPosition (1); @@ -432,7 +436,6 @@ int button; unsigned int type; - BOOL isForGameWin; BOOL isInGameWin; #define DO_MOUSE_DOWN(button) do { \ @@ -457,8 +460,8 @@ } while(0) type = [ event type ]; - isForGameWin = (qz_window == [ event window ]); isInGameWin = QZ_IsMouseInWindow (this); + switch (type) { case NSLeftMouseDown: if ( getenv("SDL_HAS3BUTTONMOUSE") ) { @@ -534,11 +537,11 @@ provides the first known mouse position, since everything after this uses deltas */ - NSPoint p = [ qz_window mouseLocationOutsideOfEventStream ]; - QZ_PrivateCocoaToSDL (this, &p); + NSPoint p; + QZ_GetMouseLocation (this, &p); SDL_PrivateMouseMotion (0, 0, p.x, p.y); firstMouseEvent = 0; - } + } else { /* @@ -557,8 +560,8 @@ if ( grab_state == QZ_VISIBLE_GRAB && !isInGameWin ) { - NSPoint p = [ qz_window mouseLocationOutsideOfEventStream ]; - QZ_PrivateCocoaToSDL (this, &p); + NSPoint p; + QZ_GetMouseLocation (this, &p); if ( p.x < 0.0 ) p.x = 0.0;