Skip to content

Commit 5279025

Browse files
authored
Merge pull request #2173 from glopesdev/issue-1967
Allow selecting output menu items using keyboard
2 parents 6b38ce6 + ec31c4b commit 5279025

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

Bonsai.Editor/GraphView/WorkflowGraphView.cs

+25-2
Original file line numberDiff line numberDiff line change
@@ -1196,14 +1196,14 @@ private IDisposable CreateOutputMenuItems(Type type, ToolStripMenuItem ownerItem
11961196

11971197
private ToolStripMenuItem CreateOutputMenuItem(string memberName, string memberSelector, Type memberType, GraphNode selectedNode)
11981198
{
1199-
var menuItem = new ToolStripMenuItem(memberName, null, CanEdit ? delegate
1199+
var menuItem = new ToolStripOutputMenuItem(memberName, null, !CanEdit ? null : delegate
12001200
{
12011201
var builder = new MemberSelectorBuilder { Selector = memberSelector };
12021202
var successor = selectedNode.Successors.Select(edge => WorkflowEditor.GetGraphNodeBuilder(edge.Node)).FirstOrDefault();
12031203
var branch = Control.ModifierKeys.HasFlag(Keys.Alt) || successor != null && successor is MemberSelectorBuilder;
12041204
Editor.CreateGraphNode(builder, selectedNode, CreateGraphNodeType.Successor, branch);
12051205
contextMenuStrip.Close(ToolStripDropDownCloseReason.ItemClicked);
1206-
} : (EventHandler)null);
1206+
});
12071207

12081208
InitializeOutputMenuItem(menuItem, memberSelector, memberType);
12091209
return menuItem;
@@ -1651,6 +1651,29 @@ private void contextMenuStrip_Closed(object sender, ToolStripDropDownClosedEvent
16511651

16521652
#endregion
16531653

1654+
#region ToolStripOutputMenuItem Class
1655+
1656+
class ToolStripOutputMenuItem : ToolStripMenuItem
1657+
{
1658+
public ToolStripOutputMenuItem(string text, Image image, EventHandler onClick)
1659+
: base(text, image, onClick)
1660+
{
1661+
}
1662+
1663+
protected override bool ProcessDialogKey(Keys keyData)
1664+
{
1665+
if (keyData == Keys.Return)
1666+
{
1667+
OnClick(EventArgs.Empty);
1668+
return true;
1669+
}
1670+
1671+
return base.ProcessDialogKey(keyData);
1672+
}
1673+
}
1674+
1675+
#endregion
1676+
16541677
#region PropertyInfoComparer Class
16551678

16561679
class PropertyInfoComparer : IEqualityComparer<PropertyInfo>

0 commit comments

Comments
 (0)