aboutsummaryrefslogtreecommitdiff
path: root/zencore/zencore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zencore/zencore.cpp')
-rw-r--r--zencore/zencore.cpp33
1 files changed, 24 insertions, 9 deletions
diff --git a/zencore/zencore.cpp b/zencore/zencore.cpp
index 3eb43c558..0b94f3bea 100644
--- a/zencore/zencore.cpp
+++ b/zencore/zencore.cpp
@@ -69,21 +69,36 @@ IsDebuggerPresent()
#endif
}
+std::optional<bool> InteractiveSessionFlag;
+
+void
+SetIsInteractiveSession(bool Value)
+{
+ InteractiveSessionFlag = Value;
+}
+
bool
IsInteractiveSession()
{
-#if ZEN_PLATFORM_WINDOWS
- DWORD dwSessionId = 0;
- if (ProcessIdToSessionId(GetCurrentProcessId(), &dwSessionId))
+ if (!InteractiveSessionFlag.has_value())
{
- return (dwSessionId != 0);
- }
-
- return false;
+#if ZEN_PLATFORM_WINDOWS
+ DWORD dwSessionId = 0;
+ if (ProcessIdToSessionId(GetCurrentProcessId(), &dwSessionId))
+ {
+ InteractiveSessionFlag = (dwSessionId != 0);
+ }
+ else
+ {
+ InteractiveSessionFlag = false;
+ }
#else
- // TODO: figure out what makes sense here
- return true;
+ // TODO: figure out what actually makes sense here
+ InteractiveSessionFlag = true;
#endif
+ }
+
+ return InteractiveSessionFlag.value();
}
//////////////////////////////////////////////////////////////////////////