Hi,
My Chrome App using libSDL2, In the SDL event handler (code below),
I'm able to get all the keyboard and mouse events BUT NONE of the window event (SDL_WINDOWEVENT) was received.
The window events are blocked. Is there a way for the SDL event handler to receive SDL_WINDOWEVENT ?
Thanks
Below, the event handler loop, I got all SDL_KEY... and SDL_MOUSE... events
but none for SDL_WINDOWEVENT when minimize, maximize, restore, resize, etc... the Chrome window.
while (!done) {
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
SDL_Log("%s(): SDL_QUIT", __func__);
done = SDL_TRUE;
break;
case SDL_KEYDOWN:
SDL_Log("%s(): SDL_KEYDOWN...", __func__);
if (event.key.keysym.sym == SDLK_ESCAPE) {
SDL_Log("%s(): SDL_KEYDOWN=SDLK_ESCAPE", __func__);
done = SDL_TRUE;
}
break;
case SDL_KEYUP:
SDL_Log("%s(): SDL_KEYUP...\n",__func__);
break;
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP:
case SDL_MOUSEMOTION:
case SDL_MOUSEWHEEL:
SDL_Log("%s(): SDL_MOUSE events\n",__func__);
break;
case SDL_WINDOWEVENT:
SDL_Log("%s(): SDL_WINDOWEVENT events\n",__func__);
handle_window_event( &event );
break;
}
}
//================================================
void handle_window_event( SDL_Event * event )
{
switch ( event->window.event ) {
case SDL_WINDOWEVENT_SHOWN:
SDL_Log("%s(): Window %d shown", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_HIDDEN:
SDL_Log("%s():Window %d hidden", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_EXPOSED:
SDL_Log("%s(): Window %d exposed", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_MOVED:
SDL_Log("%s(): Window %d moved to %d,%d", __func__,
event->window.windowID, event->window.data1,
event->window.data2);
break;
case SDL_WINDOWEVENT_RESIZED:
SDL_Log("%s(): Window %d resized to %dx%d", __func__,
event->window.windowID, event->window.data1,
event->window.data2);
break;
case SDL_WINDOWEVENT_SIZE_CHANGED:
SDL_Log("%s(): Window %d size changed", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_MINIMIZED:
SDL_Log("%s(): Window %d minimized", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_MAXIMIZED:
SDL_Log("%s(): Window %d maximized", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_RESTORED:
SDL_Log("%s(): Window %d restored", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_ENTER:
SDL_Log("%s(): Mouse entered window %d", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_LEAVE:
SDL_Log("%s(): Mouse left window %d", __func__, event->window.windowID);
break;
case SDL_WINDOWEVENT_FOCUS_GAINED:
SDL_Log("%s(): Window %d gained keyboard focus", __func__,
event->window.windowID);
break;
case SDL_WINDOWEVENT_FOCUS_LOST:
SDL_Log("%s(): Window %d lost keyboard focus", __func__,
event->window.windowID);
break;
case SDL_WINDOWEVENT_CLOSE:
SDL_Log("%s(): Window %d closed", __func__, event->window.windowID);
break;
default:
SDL_Log( "%s(): Window %d got unknown event %d", __func__,
event->window.windowID,
event->window.event ) ;
break ;
} // Switch on event kind.
} // handle_window_event()