Fixed bug #898
Jeremiah Morris 2009-12-09 16:07:17 PST No-op GlobalToLocal translations in fullscreen mode On my MacBook Pro running 10.6, I noticed a small upward bias on mouse movement in a fullscreen SDL application. The app uses WarpCursor and GetMouseState in a loop to measure relative movement. I tracked it down to NSWindow's convertBaseToScreen: routine, which added a 2-pixel offset on the Y coordinate instead of the expected (+0,+0) translation. In fullscreen mode, QZ_PrivateWarpCursor() does not translate the desired position through QZ_PrivateGlobalToLocal() before passing it to the Core Graphics system. However, QZ_GetMouseLocation() does call the reverse QZ_PrivateLocalToGlobal() even in fullscreen mode. This asymmetry caused problems each time the mouse was moved. --HG-- branch : SDL-1.2 extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/branches/SDL-1.2%404291
This commit is contained in:
parent
b0073235e5
commit
ae78d88c20
1 changed files with 4 additions and 2 deletions
|
@ -151,14 +151,16 @@ int QZ_ShowWMCursor (_THIS, WMcursor *cursor) {
|
|||
/* Convert Cocoa screen coordinate to Cocoa window coordinate */
|
||||
void QZ_PrivateGlobalToLocal (_THIS, NSPoint *p) {
|
||||
|
||||
*p = [ qz_window convertScreenToBase:*p ];
|
||||
if ( ! CGDisplayIsCaptured (display_id) )
|
||||
*p = [ qz_window convertScreenToBase:*p ];
|
||||
}
|
||||
|
||||
|
||||
/* Convert Cocoa window coordinate to Cocoa screen coordinate */
|
||||
void QZ_PrivateLocalToGlobal (_THIS, NSPoint *p) {
|
||||
|
||||
*p = [ qz_window convertBaseToScreen:*p ];
|
||||
if ( ! CGDisplayIsCaptured (display_id) )
|
||||
*p = [ qz_window convertBaseToScreen:*p ];
|
||||
}
|
||||
|
||||
/* Convert SDL coordinate to Cocoa coordinate */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue