• Sam Lantinga's avatar
    Date: Fri, 19 Nov 2004 06:23:53 -0800 (PST) · e7815a73
    Sam Lantinga authored
    From: Eric Wing
    Subject: OS X Mouse inversion problem fix (again)
    
    Here's yet another patch for the OS X mouse inversion
    problem. This should fix the problem once and for all.
    I know I've said this before, but *This time for
    sure!* :)
    
    If you recall, my last patch broke the non-OpenGL
    windowed code and caused the inversion to occur there
    instead. Max submitted a patch that partially reverted
    the changes back which included the os version hack
    which is currently the most recent CVS.
    
    Aaron Sullivan identified and reported to the mailing
    list the other day, that the last partial regression
    of the code broke OS X 10.2. Looking over the results,
    I'm thinking that I was slightly more successful than
    I thought at unifying the code. I think I was trying
    to unify the code base for OpenGL and non-OpenGL
    windowed modes for all versions of the OS. It looks
    like I failed at at unifying the OpenGL and non-OpenGL
    code, but I did succeed at unifying the OS versions.
    
    Thus, we no longer need the hack for the OS version
    checks. The partial regression still included an OS
    check which is what broke things for < 10.3.
    
    Attached is the patch for SDL_QuartzWM.m. It basically
    is a half-line change that removes one of the two
    checks that decides if the mouse coordinates need to
    be inverted, i.e:
    
    if (system_version >= 0x1030 &&
    (SDL_VideoSurface->flags & SDL_OPENGL) )
    becomes this:
    if(SDL_VideoSurface->flags & SDL_OPENGL)
    
    With Aaron's outstanding help, we have collectively
    tested:
    
    windowed OpenGL
    windowed non-OpenGL
    fullscreen OpenGL
    fullscreen non-OpenGL
    
    under OS X 10.2 (Jaguar), 10.3 (Panther), and 10.4
    (Tiger).
    
    We don't have access to 10.0 or 10.1, but since the
    original problem didn't materialize until 10.3, I'm
    hopeful that testing 10.2 is sufficient. And now that
    the code is uniform, I'm also hoping we'll be safe
    moving forward to deal with future revisions of the OS
    with this issue.
    
    --HG--
    extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40984
    e7815a73