Skip to content

Commit

Permalink
Whoops, lost this in the merge.
Browse files Browse the repository at this point in the history
  • Loading branch information
icculus committed Jun 25, 2014
1 parent 84cb232 commit 4318910
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions src/events/SDL_mouse.c
Expand Up @@ -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)
Expand Down

0 comments on commit 4318910

Please sign in to comment.