Merge pull request #555 from placroix74/screensaver-consume-input

[ScreenSaver] Consume input on cancel
This commit is contained in:
Jools Wills 2019-04-09 05:14:02 +01:00 committed by GitHub
commit 289d89aad1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 33 deletions

View file

@ -140,10 +140,6 @@ void Window::input(InputConfig* config, Input input)
mSleeping = true; mSleeping = true;
} }
} }
/*else if(input.value != 0)
{
return;
}*/
} }
} }
@ -158,7 +154,8 @@ void Window::input(InputConfig* config, Input input)
} }
mTimeSinceLastInput = 0; mTimeSinceLastInput = 0;
cancelScreenSaver(); if (cancelScreenSaver())
return;
if(config->getDeviceId() == DEVICE_KEYBOARD && input.value && input.id == SDLK_g && SDL_GetModState() & KMOD_LCTRL && Settings::getInstance()->getBool("Debug")) if(config->getDeviceId() == DEVICE_KEYBOARD && input.value && input.id == SDLK_g && SDL_GetModState() & KMOD_LCTRL && Settings::getInstance()->getBool("Debug"))
{ {
@ -418,34 +415,38 @@ bool Window::isProcessing()
} }
void Window::startScreenSaver() void Window::startScreenSaver()
{ {
if (mScreenSaver && !mRenderScreenSaver) if (mScreenSaver && !mRenderScreenSaver)
{ {
// Tell the GUI components the screensaver is starting // Tell the GUI components the screensaver is starting
for(auto i = mGuiStack.cbegin(); i != mGuiStack.cend(); i++) for(auto i = mGuiStack.cbegin(); i != mGuiStack.cend(); i++)
(*i)->onScreenSaverActivate(); (*i)->onScreenSaverActivate();
mScreenSaver->startScreenSaver(); mScreenSaver->startScreenSaver();
mRenderScreenSaver = true; mRenderScreenSaver = true;
} }
} }
void Window::cancelScreenSaver() bool Window::cancelScreenSaver()
{ {
if (mScreenSaver && mRenderScreenSaver) if (mScreenSaver && mRenderScreenSaver)
{ {
mScreenSaver->stopScreenSaver(); mScreenSaver->stopScreenSaver();
mRenderScreenSaver = false; mRenderScreenSaver = false;
mScreenSaver->resetCounts(); mScreenSaver->resetCounts();
// Tell the GUI components the screensaver has stopped // Tell the GUI components the screensaver has stopped
for(auto i = mGuiStack.cbegin(); i != mGuiStack.cend(); i++) for(auto i = mGuiStack.cbegin(); i != mGuiStack.cend(); i++)
(*i)->onScreenSaverDeactivate(); (*i)->onScreenSaverDeactivate();
}
}
void Window::renderScreenSaver() return true;
{ }
if (mScreenSaver)
mScreenSaver->renderScreenSaver(); return false;
} }
void Window::renderScreenSaver()
{
if (mScreenSaver)
mScreenSaver->renderScreenSaver();
}

View file

@ -74,7 +74,7 @@ public:
inline void stopInfoPopup() { if (mInfoPopup) mInfoPopup->stop(); }; inline void stopInfoPopup() { if (mInfoPopup) mInfoPopup->stop(); };
void startScreenSaver(); void startScreenSaver();
void cancelScreenSaver(); bool cancelScreenSaver();
void renderScreenSaver(); void renderScreenSaver();
private: private: