Some MacOS X 1.2.7 bugs

…better reported late than never. :slight_smile:

  • Mouse deltas appear to be flipped on the vertical axis in windowed
    mode with the mouse ungrabbed, I guess because Quartz uses a
    mathematically correct coordinate system and not the standard graphics
    type. The proper fix is probably to set newPoint.y = window_height -
    newPoint.y in QZ_PrivateCocoaToSDL(), but I’m not sure what the
    ramifications of the change are…tweaking p.y in NSMouseMoved’s
    "firstMouseEvent" condition definitely fixes this issue, though.

  • We’re free()ing a bogus pointer if you hit this chain of events:

    • Create a 2D surface.
    • Tear it down with a call to SDL_SetVideoMode() that creates an
      non-fullscreen SDL_OPENGL surface.
    • Tear down the OpenGL surface.

    surface->pixels wasn’t being reset in the windowed GL codepath. I
    put a fix in CVS for this.

  • Mouse cursor hidden with SDL_ShowCursor(0) is still visible on a newly
    created fullscreen window (OpenGL specific?) until you nudge the mouse,
    in which case it goes away. I haven’t looked into it, but I would guess
    that the Quartz driver isn’t respecting the previous value of
    SDL_ShowCursor() at SDL_SetVideoMode() time, and the mouse is hiding the
    cursor when updating APPACTIVE state.

At any rate, this code ‘fixes’ it at the app level:

SDL_SetVideoMode(…, SDL_FULLSCREEN);
SDL_ShowCursor(0);
SDL_ShowCursor(1);
SDL_ShowCursor(0);

Now cursor is definitely hidden.

Darrell, Max, any thoughts?

Thanks,
–ryan.