Date: Tue, 11 May 2004 22:05:32 -0400
From: Bob Ippolito Subject: [SDL] SDL_QuartzWM patches I've sent in two small patches to SDL_QuartzWM directly to Sam over the past few months (well, I think I sent both anyway) and neither of them have been implemented. I didn't receive a response, so I'm sure he was just busy and/or they got lost, so I decided to sign up to the list and post them here. This patch rolls both of them together: - Mouse cursor becomes visible if hidden when it moves outside of the game window. If you want it to stay invisible you should warp it because if it's not warped a user might click some random other application! Commercial games behave in this way (or at least Warcraft III does, which is the only one that uses a custom mouse cursor and no warping that I've played in recent memory). - Right mouse button emulation is changed from Command-Click to Control-Click, which is how OS X behaves. Consider copyright assigned to whomever needs it under whichever license it needs to be under.. yadda yadda yadda. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40898
This commit is contained in:
parent
77e3c78bf3
commit
17d60ba5d4
1 changed files with 14 additions and 3 deletions
|
@ -472,7 +472,7 @@ void QZ_PumpEvents (_THIS)
|
||||||
if ( getenv("SDL_HAS3BUTTONMOUSE") ) {
|
if ( getenv("SDL_HAS3BUTTONMOUSE") ) {
|
||||||
DO_MOUSE_DOWN (SDL_BUTTON_LEFT);
|
DO_MOUSE_DOWN (SDL_BUTTON_LEFT);
|
||||||
} else {
|
} else {
|
||||||
if ( NSCommandKeyMask & current_mods ) {
|
if ( NSControlKeyMask & current_mods ) {
|
||||||
last_virtual_button = SDL_BUTTON_RIGHT;
|
last_virtual_button = SDL_BUTTON_RIGHT;
|
||||||
DO_MOUSE_DOWN (SDL_BUTTON_RIGHT);
|
DO_MOUSE_DOWN (SDL_BUTTON_RIGHT);
|
||||||
}
|
}
|
||||||
|
@ -520,6 +520,17 @@ void QZ_PumpEvents (_THIS)
|
||||||
case NSRightMouseDragged:
|
case NSRightMouseDragged:
|
||||||
case NSOtherMouseDragged: /* usually middle mouse dragged */
|
case NSOtherMouseDragged: /* usually middle mouse dragged */
|
||||||
case NSMouseMoved:
|
case NSMouseMoved:
|
||||||
|
/* Show the cursor if it was hidden by SDL_ShowCursor() */
|
||||||
|
/* this is how games I've seen work */
|
||||||
|
if (!cursor_visible) {
|
||||||
|
if (!isInGameWin && cursor_hidden) {
|
||||||
|
ShowCursor();
|
||||||
|
cursor_hidden = NO;
|
||||||
|
} else if (isInGameWin && !cursor_hidden) {
|
||||||
|
HideCursor();
|
||||||
|
cursor_hidden = YES;
|
||||||
|
}
|
||||||
|
}
|
||||||
if ( grab_state == QZ_INVISIBLE_GRAB ) {
|
if ( grab_state == QZ_INVISIBLE_GRAB ) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue