46 lines
1.1 KiB
C#
46 lines
1.1 KiB
C#
using System;
|
|
|
|
using UnityEditor;
|
|
using UnityEditorInternal;
|
|
|
|
namespace Unity.PlasticSCM.Editor.UI
|
|
{
|
|
internal static class EditorWindowFocus
|
|
{
|
|
internal static event Action OnApplicationActivated;
|
|
internal static event Action OnApplicationDeactivated;
|
|
|
|
static EditorWindowFocus()
|
|
{
|
|
EditorApplication.update += Update;
|
|
}
|
|
|
|
static void Update()
|
|
{
|
|
bool isApplicationActive = InternalEditorUtility.isApplicationActive;
|
|
|
|
if (!mLastIsApplicationFocused && isApplicationActive)
|
|
{
|
|
mLastIsApplicationFocused = isApplicationActive;
|
|
|
|
if (OnApplicationActivated != null)
|
|
OnApplicationActivated();
|
|
|
|
return;
|
|
}
|
|
|
|
if (mLastIsApplicationFocused && !isApplicationActive)
|
|
{
|
|
mLastIsApplicationFocused = isApplicationActive;
|
|
|
|
if (OnApplicationDeactivated != null)
|
|
OnApplicationDeactivated();
|
|
|
|
return;
|
|
}
|
|
}
|
|
|
|
static bool mLastIsApplicationFocused;
|
|
}
|
|
}
|