Fix event system control

This commit is contained in:
Sinai committed 2021-04-09 01:46:26 +10:00
1 parent d39fea69c3
commit 3628f3db31
3 files changed
+10 -11

No files matched your search

+8 -10
View File
@@ -89,34 +89,29 @@ namespace UnityExplorer.Core.Input
public static void SetEventSystem()
{
// not overriding EventSystem for new InputSystem, dont seem to need to.
if (InputManager.CurrentType == InputType.InputSystem)
return;
// Disable current event system object
if (m_lastEventSystem || EventSystem.current)
if (EventSystem.current && EventSystem.current != UIManager.EventSys)
{
if (!m_lastEventSystem)
m_lastEventSystem = EventSystem.current;
m_lastEventSystem = EventSystem.current;
m_lastEventSystem.enabled = false;
}
// Set to our current system
m_settingEventSystem = true;
EventSystem.current = UIManager.EventSys;
UIManager.EventSys.enabled = true;
EventSystem.current = UIManager.EventSys;
InputManager.ActivateUIModule();
m_settingEventSystem = false;
}
public static void ReleaseEventSystem()
{
// not overriding EventSystem for new InputSystem, dont seem to need to.
if (InputManager.CurrentType == InputType.InputSystem)
return;
if (m_lastEventSystem)
if (m_lastEventSystem && m_lastEventSystem.gameObject.activeSelf)
{
m_lastEventSystem.enabled = true;
@@ -153,13 +148,16 @@ namespace UnityExplorer.Core.Input
public static void Prefix_EventSystem_set_current(ref EventSystem value)
{
if (!m_settingEventSystem)
if (!m_settingEventSystem && value != UIManager.EventSys)
{
m_lastEventSystem = value;
m_lastInputModule = value?.currentInputModule;
if (ShouldActuallyUnlock)
{
value = UIManager.EventSys;
value.enabled = true;
}
}
}