diff --git a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs index 7d3fe07946..fe2eb90ff4 100644 --- a/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs +++ b/BizHawk.Client.EmuHawk/tools/TAStudio/TAStudio.MenuItems.cs @@ -1206,6 +1206,7 @@ namespace BizHawk.Client.EmuHawk .Where(x => x.Name != "FrameColumn"); ToolStripMenuItem keysMenu = new ToolStripMenuItem("Keys"); + ToolStripMenuItem keysMenuExtra = new ToolStripMenuItem("Extra Keys"); ToolStripMenuItem[] playerMenus = new ToolStripMenuItem[Emulator.ControllerDefinition.PlayerCount + 1]; playerMenus[0] = ColumnsSubMenu; @@ -1214,6 +1215,8 @@ namespace BizHawk.Client.EmuHawk playerMenus[i] = new ToolStripMenuItem("Player " + i); } + int rowCount = Screen.FromControl(this).WorkingArea.Height / (keysMenu.Height + 4); + foreach (InputRoll.RollColumn column in columns) { ToolStripMenuItem menuItem = new ToolStripMenuItem @@ -1237,7 +1240,14 @@ namespace BizHawk.Client.EmuHawk if (column.Name.StartsWith("Key ")) { - keysMenu.DropDownItems.Add(menuItem); + if (keysMenu.DropDownItems.Count < rowCount) + { + keysMenu.DropDownItems.Add(menuItem); + } + else + { + keysMenuExtra.DropDownItems.Add(menuItem); + } } else { @@ -1261,6 +1271,11 @@ namespace BizHawk.Client.EmuHawk ColumnsSubMenu.DropDownItems.Add(keysMenu); } + if (keysMenuExtra.DropDownItems.Count > 0) + { + ColumnsSubMenu.DropDownItems.Add(keysMenuExtra); + } + for (int i = 1; i < playerMenus.Length; i++) { if (playerMenus[i].DropDownItems.Count > 0)