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

Commit 5a2cb01

Browse files
Fixing context menu displays
1 parent 6e8ed9a commit 5a2cb01

File tree

1 file changed

+39
-24
lines changed

1 file changed

+39
-24
lines changed

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

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,7 @@ protected void BuildHistoryControl(int loadAhead, List<GitLogEntry> gitLogEntrie
327327
}
328328
}
329329

330-
protected void BuildTree()
330+
protected void BuildTreeChanges()
331331
{
332332
TreeChanges.PathSeparator = Environment.FileSystem.DirectorySeparatorChar.ToString();
333333
TreeChanges.Load(SelectedEntry.changes.Select(entry => new GitStatusEntryTreeData(entry)));
@@ -371,32 +371,23 @@ protected void HistoryDetailsEntry(GitLogEntry entry)
371371
GUILayout.EndVertical();
372372
}
373373

374-
protected GenericMenu CreateChangesTreeContextMenu(ChangesTreeNode node)
375-
{
376-
var genericMenu = new GenericMenu();
377-
378-
genericMenu.AddItem(new GUIContent("Show History"), false, () => { });
379-
380-
return genericMenu;
381-
}
382-
383-
public override void OnGUI()
374+
protected void DoHistoryGui(Action<GitLogEntry> historyControlRightClick = null,
375+
Action<ChangesTreeNode> changesTreeRightClick = null)
384376
{
385377
var rect = GUILayoutUtility.GetLastRect();
386378
if (HistoryControl != null)
387379
{
388380
var historyControlRect = new Rect(0f, 0f, Position.width, Position.height - rect.height);
389381

390382
var requiresRepaint = HistoryControl.Render(historyControlRect,
391-
entry => {
383+
singleClick: entry => {
392384
SelectedEntry = entry;
393-
BuildTree();
385+
BuildTreeChanges();
386+
},
387+
doubleClick: entry => {
388+
394389
},
395-
entry => { }, entry => {
396-
GenericMenu menu = new GenericMenu();
397-
menu.AddItem(new GUIContent("Revert"), false, RevertCommit);
398-
menu.ShowAsContext();
399-
});
390+
rightClick: historyControlRightClick);
400391

401392
if (requiresRepaint)
402393
Redraw();
@@ -413,6 +404,7 @@ public override void OnGUI()
413404
{
414405
HistoryControl.ScrollTo(HistoryControl.SelectedIndex);
415406
}
407+
416408
if (GUILayout.Button(ClearSelectionButton, Styles.ToolbarButtonStyle, GUILayout.ExpandWidth(false)))
417409
{
418410
SelectedEntry = GitLogEntry.Default;
@@ -435,7 +427,8 @@ public override void OnGUI()
435427
GUILayout.BeginVertical();
436428
{
437429
var borderLeft = Styles.Label.margin.left;
438-
var treeControlRect = new Rect(rect.x + borderLeft, rect.y, Position.width - borderLeft * 2, Position.height - rect.height + Styles.CommitAreaPadding);
430+
var treeControlRect = new Rect(rect.x + borderLeft, rect.y, Position.width - borderLeft * 2,
431+
Position.height - rect.height + Styles.CommitAreaPadding);
439432
var treeRect = new Rect(0f, 0f, 0f, 0f);
440433
if (TreeChanges != null)
441434
{
@@ -448,11 +441,7 @@ public override void OnGUI()
448441
treeRect = TreeChanges.Render(treeControlRect, DetailsScroll,
449442
singleClick: node => { },
450443
doubleClick: node => { },
451-
rightClick: node => {
452-
var menu = CreateChangesTreeContextMenu(node);
453-
menu.ShowAsContext();
454-
}
455-
);
444+
rightClick: changesTreeRightClick);
456445

457446
if (TreeChanges.RequiresRepaint)
458447
Redraw();
@@ -611,6 +600,18 @@ protected override void MaybeUpdateData()
611600
}
612601
}
613602

603+
public override void OnGUI()
604+
{
605+
DoHistoryGui(entry => {
606+
GenericMenu menu = new GenericMenu();
607+
menu.AddItem(new GUIContent("Revert"), false, RevertCommit);
608+
menu.ShowAsContext();
609+
}, node => {
610+
var menu = CreateChangesTreeContextMenu(node);
611+
menu.ShowAsContext();
612+
});
613+
}
614+
614615
protected override HistoryControl HistoryControl
615616
{
616617
get { return historyControl; }
@@ -634,6 +635,15 @@ protected override Vector2 DetailsScroll
634635
get { return detailsScroll; }
635636
set { detailsScroll = value; }
636637
}
638+
639+
private GenericMenu CreateChangesTreeContextMenu(ChangesTreeNode node)
640+
{
641+
var genericMenu = new GenericMenu();
642+
643+
genericMenu.AddItem(new GUIContent("Show History"), false, () => { });
644+
645+
return genericMenu;
646+
}
637647
}
638648

639649
[Serializable]
@@ -690,6 +700,11 @@ protected override void MaybeUpdateData()
690700
}
691701
}
692702

703+
public override void OnGUI()
704+
{
705+
DoHistoryGui();
706+
}
707+
693708
protected override HistoryControl HistoryControl
694709
{
695710
get { return historyControl; }

0 commit comments

Comments
 (0)