Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 281ae99

Browse files
Merge pull request #506 from github-for-unity/fixes/change-selection-before-context-menu
Change selection before displaying context menu
2 parents f7c6ca3 + 0395bd6 commit 281ae99

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/UnityExtension/Assets/Editor/GitHub.Unity/UI/TreeControl.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ public abstract class Tree
3030
[SerializeField] private TreeNodeDictionary folders = new TreeNodeDictionary();
3131

3232
[NonSerialized] private Stack<bool> indents = new Stack<bool>();
33+
[NonSerialized] private Action<TreeNode> rightClickNextRender;
34+
[NonSerialized] private TreeNode rightClickNextRenderNode;
3335

3436
public bool IsInitialized { get { return nodes != null && nodes.Count > 0 && !String.IsNullOrEmpty(nodes[0].Name); } }
3537
public bool RequiresRepaint { get; private set; }
@@ -134,6 +136,16 @@ public void Load(IEnumerable<ITreeData> data, string title)
134136

135137
public Rect Render(Rect rect, Vector2 scroll, Action<TreeNode> singleClick = null, Action<TreeNode> doubleClick = null, Action<TreeNode> rightClick = null)
136138
{
139+
if (Event.current.type != EventType.Repaint)
140+
{
141+
if (rightClickNextRender != null)
142+
{
143+
rightClickNextRender.Invoke(rightClickNextRenderNode);
144+
rightClickNextRender = null;
145+
rightClickNextRenderNode = null;
146+
}
147+
}
148+
137149
Profiler.BeginSample("TreeControl");
138150
bool visible = true;
139151
var availableHeight = rect.y + rect.height;
@@ -274,7 +286,8 @@ private bool HandleInput(Rect rect, TreeNode currentNode, int index, Action<Tree
274286
}
275287
if (mouseButton == 1 && clickCount == 1 && rightClick != null)
276288
{
277-
rightClick(currentNode);
289+
rightClickNextRender = rightClick;
290+
rightClickNextRenderNode = currentNode;
278291
}
279292
}
280293

0 commit comments

Comments
 (0)