瀏覽代碼

Cocoa: send a MOUSEMOTION event when warping cursor from outside the window.

Fixes Bugzilla #2984.
Ryan C. Gordon 10 年之前
父節點
當前提交
5b2ff76c12
共有 1 個文件被更改,包括 4 次插入0 次删除
  1. 4 0
      src/video/cocoa/SDL_cocoamouse.m

+ 4 - 0
src/video/cocoa/SDL_cocoamouse.m

@@ -230,6 +230,10 @@ Cocoa_WarpMouseGlobal(int x, int y)
 static void
 Cocoa_WarpMouse(SDL_Window * window, int x, int y)
 {
+    /* pretend we have the mouse focus, even if we don't, so
+        Cocoa_WarpMouseGlobal() will properly fake a mouse motion event. */
+    SDL_Mouse *mouse = SDL_GetMouse();
+    mouse->focus = window;
     Cocoa_WarpMouseGlobal(x + window->x, y + window->y);
 }