public void Select(int forcedCaretIndex = -1) { skipUpdate = true; if (memento.Current == null) { memento.Store(Text); } CaretIndex = forcedCaretIndex == -1 ? textBlock.GetCaretIndexFromScreenPos(PlayerInput.MousePosition) : forcedCaretIndex; ClearSelection(); selected = true; GUI.KeyboardDispatcher.Subscriber = this; OnSelected?.Invoke(this, Keys.None); }