我正在用2個窗口編寫一個簡單的SDL2應用程序。SDL2 - 窗口無法重新打開
當應用程序啓動時顯示第一個窗口(window
變量),第二個窗口(window2
變量)被隱藏。
預期的行爲:
我點擊第一窗口,第二窗口彈出,然後我關閉了第二個窗口。
我可以關閉並重新打開窗口,只要我想要。
觀察到的行爲:
一旦我關閉了第二個窗口,如果我在第一個窗口reclick,第二個窗口不會如預期出現。
如my comment所述:該窗口未出現在我的窗口管理器(即Wayland)中。
代碼:
#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;
}
你能否提供更多的細節 –
我不再使用這個項目,所以我無法測試該補丁是否修復了我的錯誤。考慮到錯誤的描述,我想它是的。感謝您的幫助。 –