Skip to content

Commit

Permalink
Date: Fri, 13 Feb 2004 17:03:16 +0100
Browse files Browse the repository at this point in the history
From: Max Horn
Subject: Modifier key fix

The internal modifier state can get out of sync with reality. To
trigger this, do for example this:
  1) Launch an SDL app
  2) Alt-click on the desktop (this will hide the SDL app).
  3) Bring the SDL app back to the front
  4) SDL will still think alt is pressed (and as such will treat left
clicks like middle clicks). If you press and release alt, it'll be fine
again.

The attached patch cures this by rechecking the modifier state whenever
we process an event.
  • Loading branch information
slouken committed Feb 13, 2004
1 parent 5f8264e commit 5f7c55f
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
6 changes: 5 additions & 1 deletion src/video/quartz/SDL_QuartzEvents.m
Expand Up @@ -266,6 +266,9 @@ static void QZ_DoModifiers (_THIS, unsigned int newMods) {
int i;
int bit;
SDL_keysym key;

if (current_mods == newMods)
return;

key.scancode = 0;
key.sym = SDLK_UNKNOWN;
Expand Down Expand Up @@ -462,6 +465,8 @@ void QZ_PumpEvents (_THIS)
type = [ event type ];
isInGameWin = QZ_IsMouseInWindow (this);

QZ_DoModifiers(this, [ event modifierFlags ] );

switch (type) {
case NSLeftMouseDown:
if ( getenv("SDL_HAS3BUTTONMOUSE") ) {
Expand Down Expand Up @@ -613,7 +618,6 @@ but not as a result of the warp (so it's in the right direction).
QZ_DoKey (this, SDL_PRESSED, event);
break;
case NSFlagsChanged:
QZ_DoModifiers(this, [ event modifierFlags ] );
break;
case NSAppKitDefined:
switch ( [ event subtype ] ) {
Expand Down
1 change: 1 addition & 0 deletions src/video/quartz/SDL_QuartzVideo.m
Expand Up @@ -203,6 +203,7 @@ static int QZ_VideoInit (_THIS, SDL_PixelFormat *video_format) {
current_grab_mode = SDL_GRAB_OFF;
cursor_should_be_visible = YES;
cursor_visible = YES;
current_mods = -1;

/* register for sleep notifications so wake from sleep generates SDL_VIDEOEXPOSE */
QZ_RegisterForSleepNotifications (this);
Expand Down

0 comments on commit 5f7c55f

Please sign in to comment.