• Show log

    Commit

  • Hash : 50203d58
    Author : Sam Lantinga
    Date : 2020-12-08T22:00:06

    Fixed bug 5329 - SDL_SetWindowGrab(SDL_FALSE) fails to unlock cursor if window is partially offscreen
    
    Ivan Mogilko
    
    With SDL 2.0.12 under MS Windows, if the window is partially offscreen calling SDL_SetWindowGrab(w, SDL_TRUE) works, but subsequent call to SDL_SetWindowGrab(w, SDL_FALSE) does not work.
    
    I tested this in both real program, and a small test app, where unlocking cursor worked perfectly while window is fully in desktop bounds, but did not work if it was at least few pixels outside.
    
    For the reference, following code is enough to reproduce the issue:
    
    #include <windows.h>
    #include <SDL.h>
    
    int WinMain(
        HINSTANCE hInstance,
        HINSTANCE hPrevInstance,
        LPSTR     lpCmdLine,
        int       nShowCmd)
    {
        SDL_Init(SDL_INIT_VIDEO);
        SDL_Window* w = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 400, 0);
    
        bool grabbed = false;
        bool want_quit = false;
        while (!want_quit)
        {
            SDL_Event event;
            while (SDL_PollEvent(&event))
            {
                switch (event.type)
                {
                case SDL_QUIT: want_quit = true; break;
                case SDL_KEYDOWN:
                    if (event.key.keysym.scancode == SDL_SCANCODE_SPACE)
                    {
                        SDL_SetWindowGrab(w, static_cast<SDL_bool>(!grabbed));
                        grabbed = !grabbed;
                    }
                }
            }
        }
    
        SDL_DestroyWindow(w);
        SDL_Quit();
        return 0;
    }
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/SDL.git
    Git SSH git@git.kmx.io:kc3-lang/SDL.git
    Public access ? public
    Description

    Fork of https://github.com/libsdl-org/SDL

    Users
    thodg_m kc3_lang_org thodg_w thodg_l www_kmx_io thodg
    Tags