mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-11 11:45:21 +00:00
PS3: Stop using SDL mouse focus events to detect the XMB
Mouse focus events are also sent by SDL when the mouse is warped outside of the window area. App suspended / resumed are now used. These are only sent by SDL when opening / closing the XMB on the PS3. Fixes #10340.
This commit is contained in:
parent
6af4f3d236
commit
6437ca1ede
@ -36,33 +36,29 @@
|
||||
* This pauses execution and keeps redrawing the screen until the XMB is closed.
|
||||
*/
|
||||
void PS3SdlEventSource::preprocessEvents(SDL_Event *event) {
|
||||
if (event->type == SDL_WINDOWEVENT) {
|
||||
if (event->window.event == SDL_WINDOWEVENT_LEAVE) {
|
||||
// XMB opened
|
||||
if (g_engine)
|
||||
g_engine->pauseEngine(true);
|
||||
if (event->type == SDL_APP_DIDENTERBACKGROUND) {
|
||||
// XMB opened
|
||||
if (g_engine)
|
||||
g_engine->pauseEngine(true);
|
||||
|
||||
for (;;) {
|
||||
if (!SDL_PollEvent(event)) {
|
||||
// Locking the screen forces a full redraw
|
||||
Graphics::Surface* screen = g_system->lockScreen();
|
||||
if (screen) {
|
||||
g_system->unlockScreen();
|
||||
g_system->updateScreen();
|
||||
}
|
||||
SDL_Delay(10);
|
||||
continue;
|
||||
}
|
||||
if (event->type == SDL_QUIT)
|
||||
return;
|
||||
if (event->type != SDL_WINDOWEVENT)
|
||||
continue;
|
||||
if (event->window.event == SDL_WINDOWEVENT_ENTER) {
|
||||
// XMB closed
|
||||
if (g_engine)
|
||||
g_engine->pauseEngine(false);
|
||||
return;
|
||||
for (;;) {
|
||||
if (!SDL_PollEvent(event)) {
|
||||
// Locking the screen forces a full redraw
|
||||
Graphics::Surface* screen = g_system->lockScreen();
|
||||
if (screen) {
|
||||
g_system->unlockScreen();
|
||||
g_system->updateScreen();
|
||||
}
|
||||
SDL_Delay(10);
|
||||
continue;
|
||||
}
|
||||
if (event->type == SDL_QUIT)
|
||||
return;
|
||||
if (event->type == SDL_APP_DIDENTERFOREGROUND) {
|
||||
// XMB closed
|
||||
if (g_engine)
|
||||
g_engine->pauseEngine(false);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user