diff --git a/include/SDL_video.h b/include/SDL_video.h
index 78c3fca41934bd17817aee2ffa79c50927247d68..9a9f905c5a1b6494b6ea7b5c0bc3f5b4e552ea58 100644
--- a/include/SDL_video.h
+++ b/include/SDL_video.h
@@ -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.
diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
index ff1e9eb7e47bcb3c2b8502738ae2cbdb1e56a12f..c2a01191640661e67b9185652293eb77615c76c0 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -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,15 +1669,23 @@ 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;
@@ -1688,15 +1693,7 @@ SDL_SetWindowGrab(SDL_Window * window, int mode)
     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);