Skip to content

Commit 289d89a

Browse files
authored
Merge pull request #555 from placroix74/screensaver-consume-input
[ScreenSaver] Consume input on cancel
2 parents fd04b15 + 9362967 commit 289d89a

2 files changed

Lines changed: 38 additions & 37 deletions

File tree

es-core/src/Window.cpp

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,6 @@ void Window::input(InputConfig* config, Input input)
140140
mSleeping = true;
141141
}
142142
}
143-
/*else if(input.value != 0)
144-
{
145-
return;
146-
}*/
147143
}
148144
}
149145

@@ -158,7 +154,8 @@ void Window::input(InputConfig* config, Input input)
158154
}
159155

160156
mTimeSinceLastInput = 0;
161-
cancelScreenSaver();
157+
if (cancelScreenSaver())
158+
return;
162159

163160
if(config->getDeviceId() == DEVICE_KEYBOARD && input.value && input.id == SDLK_g && SDL_GetModState() & KMOD_LCTRL && Settings::getInstance()->getBool("Debug"))
164161
{
@@ -418,34 +415,38 @@ bool Window::isProcessing()
418415
}
419416

420417
void Window::startScreenSaver()
421-
{
422-
if (mScreenSaver && !mRenderScreenSaver)
423-
{
424-
// Tell the GUI components the screensaver is starting
425-
for(auto i = mGuiStack.cbegin(); i != mGuiStack.cend(); i++)
426-
(*i)->onScreenSaverActivate();
427-
428-
mScreenSaver->startScreenSaver();
429-
mRenderScreenSaver = true;
430-
}
431-
}
432-
433-
void Window::cancelScreenSaver()
434-
{
435-
if (mScreenSaver && mRenderScreenSaver)
436-
{
437-
mScreenSaver->stopScreenSaver();
438-
mRenderScreenSaver = false;
439-
mScreenSaver->resetCounts();
440-
441-
// Tell the GUI components the screensaver has stopped
442-
for(auto i = mGuiStack.cbegin(); i != mGuiStack.cend(); i++)
443-
(*i)->onScreenSaverDeactivate();
444-
}
445-
}
446-
447-
void Window::renderScreenSaver()
448-
{
449-
if (mScreenSaver)
450-
mScreenSaver->renderScreenSaver();
451-
}
418+
{
419+
if (mScreenSaver && !mRenderScreenSaver)
420+
{
421+
// Tell the GUI components the screensaver is starting
422+
for(auto i = mGuiStack.cbegin(); i != mGuiStack.cend(); i++)
423+
(*i)->onScreenSaverActivate();
424+
425+
mScreenSaver->startScreenSaver();
426+
mRenderScreenSaver = true;
427+
}
428+
}
429+
430+
bool Window::cancelScreenSaver()
431+
{
432+
if (mScreenSaver && mRenderScreenSaver)
433+
{
434+
mScreenSaver->stopScreenSaver();
435+
mRenderScreenSaver = false;
436+
mScreenSaver->resetCounts();
437+
438+
// Tell the GUI components the screensaver has stopped
439+
for(auto i = mGuiStack.cbegin(); i != mGuiStack.cend(); i++)
440+
(*i)->onScreenSaverDeactivate();
441+
442+
return true;
443+
}
444+
445+
return false;
446+
}
447+
448+
void Window::renderScreenSaver()
449+
{
450+
if (mScreenSaver)
451+
mScreenSaver->renderScreenSaver();
452+
}

es-core/src/Window.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class Window
7474
inline void stopInfoPopup() { if (mInfoPopup) mInfoPopup->stop(); };
7575

7676
void startScreenSaver();
77-
void cancelScreenSaver();
77+
bool cancelScreenSaver();
7878
void renderScreenSaver();
7979

8080
private:

0 commit comments

Comments
 (0)