SDL/test/relative_mode.markdown
Sam Lantinga a90ad3b0e2 Removed SDL_bool in favor of plain bool
We require stdbool.h in the build environment, so we might as well use the plain bool type.

If your environment doesn't have stdbool.h, this simple replacement will suffice:
typedef signed char bool;
2024-09-18 08:32:30 -07:00

1.2 KiB

Relative mode testing

See test program at the bottom of this file.

Initial tests:

  • When in relative mode, the mouse shouldn't be moveable outside of the window.
  • When the cursor is outside the window when relative mode is enabled, mouse clicks should not go to whatever app was under the cursor previously.
  • When alt/cmd-tabbing between a relative mode app and another app, clicks when in the relative mode app should also not go to whatever app was under the cursor previously.

Code

#include <SDL.h>

int PollEvents()
{
    SDL_Event event;
    while (SDL_PollEvent(&event))
    {
        switch (event.type)
        {
            case SDL_EVENT_QUIT:
                return 1;
            default:
                break;
        }
    }

    return 0;
}

int main(int argc, char *argv[])
{
    SDL_Window *win;

    SDL_Init(SDL_INIT_VIDEO);

    win = SDL_CreateWindow("Test", 800, 600, 0);
    SDL_SetWindowRelativeMouseMode(win, true);

    while (1)
    {
        if (PollEvents())
            break;
    }

    SDL_DestroyWindow(win);

    SDL_Quit();

    return 0;
}