From 6f8b5f24771d135b3d3ea63166ee63727f4e9a6f Mon Sep 17 00:00:00 2001 From: Kyzentun Date: Wed, 10 Dec 2014 13:38:10 -0700 Subject: [PATCH] Made input callbacks lock during transitions and lockinput. --- src/Screen.cpp | 3 ++- src/Screen.h | 1 + src/ScreenWithMenuElements.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Screen.cpp b/src/Screen.cpp index c1c491ff9d..f8fa95d1da 100644 --- a/src/Screen.cpp +++ b/src/Screen.cpp @@ -304,7 +304,8 @@ void Screen::ClearMessageQueue( const ScreenMessage SM ) bool Screen::PassInputToLua(const InputEventPlus& input) { - if(m_InputCallbacks.empty()) + if(m_InputCallbacks.empty() || m_fLockInputSecs > 0.0f + || !AllowCallbackInput()) { return false; } diff --git a/src/Screen.h b/src/Screen.h index 7c5d56b02b..0bea3cd95b 100644 --- a/src/Screen.h +++ b/src/Screen.h @@ -128,6 +128,7 @@ public: bool PassInputToLua(const InputEventPlus& input); void AddInputCallbackFromStack(lua_State* L); void RemoveInputCallback(lua_State* L); + virtual bool AllowCallbackInput() { return true; } // let subclass override if they want virtual bool MenuUp(const InputEventPlus &) { return false; } diff --git a/src/ScreenWithMenuElements.h b/src/ScreenWithMenuElements.h index 2879e96d64..3b5497e49e 100644 --- a/src/ScreenWithMenuElements.h +++ b/src/ScreenWithMenuElements.h @@ -22,6 +22,7 @@ public: void StartTransitioningScreen( ScreenMessage smSendWhenDone ); virtual void Cancel( ScreenMessage smSendWhenDone ); bool IsTransitioning(); + virtual bool AllowCallbackInput() { return !IsTransitioning(); } void StopTimer(); void ResetTimer();