Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

Use boolean value for input grab mode, like we do for fullscreen mode.

  • Loading branch information
slouken committed Feb 28, 2011
1 parent 1ffc529 commit 58788f31b429414c01cac4de494fb8202e74d4ea
Showing with 16 additions and 19 deletions.
  1. +4 −4 include/SDL_video.h
  2. +12 −15 src/video/SDL_video.c
@@ -588,21 +588,21 @@ extern DECLSPEC int SDLCALL SDL_UpdateWindowSurfaceRects(SDL_Window * window,
/**
* \brief Set a window's input grab mode.
*
* \param mode This is 1 to grab input, and 0 to release input.
* \param grabbed This is SDL_TRUE to grab input, and SDL_FALSE to release input.
*
* \sa SDL_GetWindowGrab()
*/
extern DECLSPEC void SDLCALL SDL_SetWindowGrab(SDL_Window * window,
int mode);
SDL_bool grabbed);

/**
* \brief Get a window's input grab mode.
*
* \return This returns 1 if input is grabbed, and 0 otherwise.
* \return This returns SDL_TRUE if input is grabbed, and SDL_FALSE otherwise.
*
* \sa SDL_SetWindowGrab()
*/
extern DECLSPEC int SDLCALL SDL_GetWindowGrab(SDL_Window * window);
extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowGrab(SDL_Window * window);

/**
* \brief Destroy a window.
@@ -108,9 +108,6 @@ static SDL_VideoDevice *_this = NULL;
return retval; \
}

/* Various local functions */
static void SDL_UpdateWindowGrab(SDL_Window * window);

/* Support for framebuffer emulation using an accelerated renderer */

#define SDL_WINDOWTEXTUREDATA "_SDL_WindowTextureData"
@@ -1672,31 +1669,31 @@ SDL_UpdateWindowSurfaceRects(SDL_Window * window, SDL_Rect * rects,
return _this->UpdateWindowFramebuffer(_this, window, rects, numrects);
}

static void
SDL_UpdateWindowGrab(SDL_Window * window)
{
if ((window->flags & SDL_WINDOW_INPUT_FOCUS) && _this->SetWindowGrab) {
_this->SetWindowGrab(_this, window);
}
}

void
SDL_SetWindowGrab(SDL_Window * window, int mode)
SDL_SetWindowGrab(SDL_Window * window, SDL_bool grabbed)
{
CHECK_WINDOW_MAGIC(window, );

if ((!!mode == !!(window->flags & SDL_WINDOW_INPUT_GRABBED))) {
if ((!!grabbed == !!(window->flags & SDL_WINDOW_INPUT_GRABBED))) {
return;
}
if (mode) {
if (grabbed) {
window->flags |= SDL_WINDOW_INPUT_GRABBED;
} else {
window->flags &= ~SDL_WINDOW_INPUT_GRABBED;
}
SDL_UpdateWindowGrab(window);
}

static void
SDL_UpdateWindowGrab(SDL_Window * window)
{
if ((window->flags & SDL_WINDOW_INPUT_FOCUS) && _this->SetWindowGrab) {
_this->SetWindowGrab(_this, window);
}
}

int
SDL_bool
SDL_GetWindowGrab(SDL_Window * window)
{
CHECK_WINDOW_MAGIC(window, 0);

0 comments on commit 58788f3

Please sign in to comment.