J'écris une application SDL2 simple avec 2 fenêtres.SDL2 - La fenêtre ne peut pas être rouverte
La première fenêtre (window
variable) est affichée lorsque l'application démarre, la seconde (window2
variable) est masquée.
Comportement attendu:
je clique sur la première fenêtre, la seconde fenêtre apparaît, puis je fermer la seconde fenêtre.
Et je peux fermer et rouvrir la fenêtre autant que je veux.
comportement observé:
Une fois que je ferme la deuxième fenêtre, si je dans la première cliquer à nouveau sur la fenêtre, la deuxième fenêtre n'apparaît pas comme prévu.
Comme indiqué dans my comment: la fenêtre n'apparaît pas dans mon gestionnaire de fenêtres (c'est-à-dire Wayland).
Le code:
#include <SDL2/SDL.h>
int main()
{
SDL_Window* window, *window2 = NULL;
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
return 1;
} else {
window = SDL_CreateWindow("ONE", SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
window2 = SDL_CreateWindow("TWO", SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED, 320, 240, SDL_WINDOW_HIDDEN);
if (window == NULL || window2 == NULL) {
SDL_DestroyWindow(window);
SDL_DestroyWindow(window2);
return 1;
}
bool running = true;
while(running) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_WINDOWEVENT) {
if (event.window.event == SDL_WINDOWEVENT_CLOSE) {
if (SDL_GetWindowID(window) == event.window.windowID) {
running = false;
} else {
SDL_HideWindow(window2);
}
}
} else if (event.type == SDL_MOUSEBUTTONDOWN) {
SDL_ShowWindow(window2);
}
}
}
}
SDL_DestroyWindow(window);
SDL_DestroyWindow(window2);
SDL_Quit();
return 0;
}
pouvez-vous s'il vous plaît fournir plus de détails –
Je n'utilise plus ce projet, donc je ne peux pas tester si le correctif répare mon bug. Je suppose que c'est le cas, compte tenu de la description du bug. Merci de votre aide. –