SDL icon indicating copy to clipboard operation
SDL copied to clipboard

MacOS - open native file dialog when in full screen mode goes haywire

Open jawaidbazyar2 opened this issue 6 months ago • 0 comments

I enter full screen mode on MacOS like so:

if (display_fullscreen_mode == DISPLAY_FULLSCREEN_MODE) { SDL_DisplayMode *selected_mode;

    SDL_DisplayID did = SDL_GetDisplayForWindow(window);
    int num_modes;
    SDL_DisplayMode **modes = SDL_GetFullscreenDisplayModes(did, &num_modes);
    for (int i = 0; i < num_modes; i++) {
        printf("Mode %d: %dx%d\n", i, modes[i]->w, modes[i]->h);
    }
    selected_mode = modes[0];

    SDL_SetWindowAspectRatio(window, 0.0f, 0.0f);
    SDL_SetWindowFullscreenMode(window, selected_mode);
    SDL_SetWindowFullscreen(window, display_fullscreen_mode);
    SDL_free(modes);

}

then if I attempt to open native file dialog like so: SDL_ShowOpenFileDialog(file_dialog_callback, userdata, osd->get_window(), filters, sizeof(filters)/sizeof(SDL_DialogFileFilter), nullptr, false);

a strange series of events occurs: window shrinks then zooms back up to full size then shrinks again

The open file dialog is nowhere to be seen. The state of the application window is confused.

This code works as expected when the window is in window mode, instead of full screen mode.

If instead of modes[0] selected_mode, I pass NULL to SetWindowFullScreenMode, the open file dialog works as expected. (But the full-sizing process is really slow when using NULL, so I prefer passing the selected fullscreen mode if it can be achieved.

MacOS 15.4.1 SDL versions: 3b17d08eb292583ee0668b6b9ad29c3ad89d5200 vendored/SDL (release-3.2.10-35-g3b17d08eb) 0891a7f1d4f8ee5c7336a102713a2ceee03db357 vendored/SDL_image (release-3.2.4-14-g0891a7f1) b9e7e9381bc8a3e816de8a2b2b76b0749238e69a vendored/SDL_ttf (release-3.2.0-41-gb9e7e93)

jawaidbazyar2 avatar Jun 03 '25 01:06 jawaidbazyar2