Kaynağa Gözat

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

Fixes Bugzilla #2984.
Ryan C. Gordon 10 yıl önce
ebeveyn
işleme
5b2ff76c12
1 değiştirilmiş dosya ile 4 ekleme ve 0 silme
  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);
 }