private void DoWindow(int id)
        {
            /*if (blockToAssign != null)
             * {
             * GUILayout.Label("Select which keybind to add:");
             * GUILayout.BeginHorizontal();
             * for (int i = 0; i < blockToAssign.Keys.Count; i++)
             * {
             *  var key = blockToAssign.Keys[i];
             *  if (GUILayout.Button(key.DisplayName))
             *  {
             *    // BuildingUpdate() will handle adding the keybind
             *    selectedKeybind = i;
             *  }
             * }
             * GUILayout.EndHorizontal();
             * }
             * else */
            if (assigningBlocks)
            {
                /*GUILayout.Label(@"Click non-highlighted blocks to add them to the key group.
                 * Click highlighted blocks to remove them from the group.");*/
                GUILayout.Label("Click a highlighted block to remove it from the group.");

                if (GUILayout.Button($"Assign all controls bound to {group.KeyString()}"))
                {
                    group.AddAllWithKeys();
                }

                if (GUILayout.Button("Exit assignment mode"))
                {
                    ExitBlockAssignmentMode();
                }
            }
            else
            {
                var closeRect = new Rect(windowRect.width - 40, 6, 32, 32);
                if (GUI.Button(closeRect, "X"))
                {
                    KeyManagerInterface.Instance.CloseGroupEdit();
                }

                GUILayout.BeginHorizontal();

                var textStyle = new GUIStyle(Elements.Labels.Title)
                {
                    margin   = { top = 12 },
                    fontSize = 15
                };
                GUILayout.Label("Name: ", textStyle);

                GUI.SetNextControlName("txt-group-name");
                group.Name = GUILayout.TextField(group.Name);

                // Select all text after cycling through groups with tab
                if (oldGroup != null && oldGroup != group)
                {
                    var te = (TextEditor)GUIUtility.GetStateObject(typeof(TextEditor), GUIUtility.keyboardControl);
                    te.SelectAll();

                    oldGroup = null;
                }

                GUILayout.EndHorizontal();

                GUILayout.FlexibleSpace();

                if (GUILayout.Button("(Un-)Assign blocks"))
                {
                    EnterBlockAssignmentMode();
                }
            }

            // Cycle through groups with tab when editing the name
            if (GUI.GetNameOfFocusedControl() == "txt-group-name" &&
                Event.current.type == EventType.KeyDown &&
                Event.current.keyCode == KeyCode.Tab)
            {
                KeyManagerInterface.Instance.EditNextGroup();

                // Select all text once we're displaying the new group
                oldGroup = group;
            }

            GUI.DragWindow();
        }