Skip to content
Permalink
Browse files

Whoops, lost this in the merge.

  • Loading branch information
icculus committed Jun 25, 2014
1 parent 84cb232 commit 4318910e02e4b737d841c21a3415b715981d9dcf
Showing with 35 additions and 0 deletions.
  1. +35 −0 src/events/SDL_mouse.c
@@ -614,6 +614,41 @@ SDL_GetRelativeMouseMode()
return mouse->relative_mode;
}

int
SDL_CaptureMouse(SDL_bool enabled)
{
SDL_Mouse *mouse = SDL_GetMouse();
SDL_Window *focusWindow;
SDL_bool isCaptured;

if (!mouse->CaptureMouse) {
return SDL_Unsupported();
}

focusWindow = SDL_GetKeyboardFocus();

isCaptured = focusWindow && (focusWindow->flags & SDL_WINDOW_MOUSE_CAPTURE);
if (isCaptured == enabled) {
return 0; /* already done! */
}

if (enabled) {
if (!focusWindow) {
return SDL_SetError("No window has focus");
} else if (mouse->CaptureMouse(focusWindow) == -1) {
return -1; /* CaptureMouse() should call SetError */
}
focusWindow->flags |= SDL_WINDOW_MOUSE_CAPTURE;
} else {
if (mouse->CaptureMouse(NULL) == -1) {
return -1; /* CaptureMouse() should call SetError */
}
focusWindow->flags &= ~SDL_WINDOW_MOUSE_CAPTURE;
}

return 0;
}

SDL_Cursor *
SDL_CreateCursor(const Uint8 * data, const Uint8 * mask,
int w, int h, int hot_x, int hot_y)

0 comments on commit 4318910

Please sign in to comment.