static void processEvent(const SDL_Event& event)
{
+ if (videoEventFilter(event)) return;
+
switch (event.type)
{
case SDL_KEYDOWN:
case SDL_QUIT:
Config.quitting = true;
break;
- case SDL_ACTIVEEVENT:
- case SDL_SYSWMEVENT:
- processVideoEvent(event);
- break;
}
}
drawOnscreenControls();
}
-void processVideoEvent(const SDL_Event& event)
+bool videoEventFilter(const SDL_Event& event)
{
// If we're in power save mode, and this is a defocus event, quit.
if (Config.saver) {
(event.active.state & SDL_APPINPUTFOCUS) &&
!event.active.gain) {
S9xDoAction(kActionQuit);
- return;
+ return true;
}
}
// Forward video event to the active scaler, if any.
if (scaler)
- scaler->filter(event);
+ return scaler->filter(event);
+ else
+ return false;
}
// This is here for completeness, but palette mode is mostly useless (slow).
/** The current scaler object */
extern Scaler* scaler;
-void processVideoEvent(const SDL_Event& event);
+bool videoEventFilter(const SDL_Event& event);
#if CONF_EXIT_BUTTON
void ExitBtnReset();