diff --git a/src/GitHub.Api/Git/RepositoryManager.cs b/src/GitHub.Api/Git/RepositoryManager.cs index f2d45687c..0caf78850 100644 --- a/src/GitHub.Api/Git/RepositoryManager.cs +++ b/src/GitHub.Api/Git/RepositoryManager.cs @@ -312,16 +312,16 @@ public ITask LockFile(string file) { var task = GitClient.Lock(file); HookupHandlers(task); - ListLocks(false); - return task; + + return task.Then(ListLocks(false)); } public ITask UnlockFile(string file, bool force) { var task = GitClient.Unlock(file, force); HookupHandlers(task).Schedule(taskManager); - ListLocks(false); - return task; + + return task.Then(ListLocks(false)); } private void LoadGitUser() diff --git a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/ProjectWindowInterface.cs b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/ProjectWindowInterface.cs index 52b29ea13..cef86203e 100644 --- a/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/ProjectWindowInterface.cs +++ b/src/UnityExtension/Assets/Editor/GitHub.Unity/UI/ProjectWindowInterface.cs @@ -22,6 +22,8 @@ class ProjectWindowInterface : AssetPostprocessor public static void Initialize(IRepository repo) { + Logger.Trace("Initialize HasRepository:{0}", repo != null); + EditorApplication.projectWindowItemOnGUI -= OnProjectWindowItemGUI; EditorApplication.projectWindowItemOnGUI += OnProjectWindowItemGUI; initialized = true; @@ -149,7 +151,9 @@ private static void Refresh() private static void RunLocksUpdateOnMainThread(IEnumerable update) { new ActionTask(EntryPoint.ApplicationManager.TaskManager.Token, _ => OnLocksUpdate(update)) - .ScheduleUI(EntryPoint.ApplicationManager.TaskManager); + { + Affinity = TaskAffinity.UI + }.Start(); } private static void OnLocksUpdate(IEnumerable update) @@ -169,11 +173,16 @@ private static void OnLocksUpdate(IEnumerable update) var g = AssetDatabase.AssetPathToGUID(assetPath); guidsLocks.Add(g); } + + EditorApplication.RepaintProjectWindow(); } private static void RunStatusUpdateOnMainThread(GitStatus update) { - EntryPoint.ApplicationManager.TaskManager.ScheduleUI(new ActionTask(EntryPoint.ApplicationManager.TaskManager.Token, _ => OnStatusUpdate(update))); + new ActionTask(EntryPoint.ApplicationManager.TaskManager.Token, _ => OnStatusUpdate(update)) + { + Affinity = TaskAffinity.UI + }.Start(); } private static void OnStatusUpdate(GitStatus update)