1
0
Эх сурвалжийг харах

Add a test case for bug https://github.com/libsdl-org/SDL/issues/4469

Sam Lantinga 3 жил өмнө
parent
commit
7df6a9ea59
1 өөрчлөгдсөн 12 нэмэгдсэн , 0 устгасан
  1. 12 0
      test/testwm2.c

+ 12 - 0
test/testwm2.c

@@ -38,6 +38,7 @@ static const char *cursorNames[] = {
 };
 int system_cursor = -1;
 SDL_Cursor *cursor = NULL;
+SDL_bool relative_mode = SDL_FALSE;
 
 /* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
 static void
@@ -76,6 +77,17 @@ loop()
                             SDL_GetDisplayName(SDL_GetWindowDisplayIndex(window)));
                     }
                 }
+                if (event.window.event == SDL_WINDOWEVENT_FOCUS_LOST) {
+                    relative_mode = SDL_GetRelativeMouseMode();
+                    if (relative_mode) {
+                        SDL_SetRelativeMouseMode(SDL_FALSE);
+                    }
+                }
+                if (event.window.event == SDL_WINDOWEVENT_FOCUS_GAINED) {
+                    if (relative_mode) {
+                        SDL_SetRelativeMouseMode(SDL_TRUE);
+                    }
+                }
             }
             if (event.type == SDL_KEYUP) {
                 SDL_bool updateCursor = SDL_FALSE;