diff --git a/stepmania/src/arch/ArchHooks/ArchHooks.cpp b/stepmania/src/arch/ArchHooks/ArchHooks.cpp index 90fd71673c..64997c5550 100644 --- a/stepmania/src/arch/ArchHooks/ArchHooks.cpp +++ b/stepmania/src/arch/ArchHooks/ArchHooks.cpp @@ -1,9 +1,11 @@ #include "global.h" #include "ArchHooks.h" +#include "RageLog.h" #include "RageThreads.h" bool ArchHooks::s_bQuitting = false; bool ArchHooks::s_bToggleWindowed = false; +static bool g_bHasFocus = true; // Keep from pulling RageThreads.h into ArchHooks.h static RageMutex s_AHLock( "ArchHooks lock" ); ArchHooks *HOOKS = NULL; @@ -29,6 +31,20 @@ ArchHooks *MakeArchHooks() return new ARCH_HOOKS; } +void ArchHooks::SetHasFocus( bool bHasFocus ) +{ + if( bHasFocus == g_bHasFocus ) + return; + g_bHasFocus = bHasFocus; + + LOG->Trace( "App %s focus", bHasFocus? "has":"doesn't have" ); +} + +bool ArchHooks::AppHasFocus() +{ + return g_bHasFocus; +} + /* * (c) 2003-2004 Glenn Maynard, Chris Danford * All rights reserved. diff --git a/stepmania/src/arch/ArchHooks/ArchHooks.h b/stepmania/src/arch/ArchHooks/ArchHooks.h index b574fc8054..3c38d40a85 100644 --- a/stepmania/src/arch/ArchHooks/ArchHooks.h +++ b/stepmania/src/arch/ArchHooks/ArchHooks.h @@ -90,6 +90,16 @@ public: */ static void MountInitialFilesystems( const RString &sDirOfExecutable ); + /* + * Platform-specific code calls this to indicate focus changes. + */ + void SetHasFocus( bool bAppHasFocus ); + + /* + * Return true if the application has input focus. + */ + bool AppHasFocus(); + private: /* This are helpers for GetMicrosecondsSinceStart on systems with a timer * that may loop or move backwards. */