private void DisposeCaretManager()
        {
            if (_caretManager == null)
            {
                return;
            }

            _caretManager.Dispose();
            _caretManager = null;
        }
        private void TouchpadOnGesture(object sender, GestureEventArgs gestureEventArgs)
        {
            if (gestureEventArgs.GestureType != RazerAPI.GestureType.Tap)
            {
                return;
            }

            var x = gestureEventArgs.X;
            var y = gestureEventArgs.Y;

            var titlePosition   = NoteTitleBox.TransformToAncestor(Application.Current.MainWindow).Transform(new Point(0, 0));
            var contentPosition = NoteContentBox.TransformToAncestor(Application.Current.MainWindow).Transform(new Point(0, 0));

            var capturing = SharpBladeHelper.Manager.KeyboardCapture;

            if (x >= titlePosition.X && x <= titlePosition.X + NoteTitleBox.Width &&
                y >= titlePosition.Y && y <= titlePosition.Y + NoteTitleBox.Height)
            {
                SharpBladeHelper.Manager.StartWPFControlKeyboardCapture(NoteTitleBox);
                if (_clearTitle)
                {
                    NoteTitleBox.Clear();
                    _clearTitle = false;
                }
                _caretManager = new CaretManager(NoteTitleBox, NoteTitleBox.Text.Length);
                HighlightInput(NoteTitleBox);
                UnhighlightInput(NoteContentBox);
            }
            else if (x >= contentPosition.X && x <= contentPosition.X + NoteContentBox.Width &&
                     y >= contentPosition.Y && y <= contentPosition.Y + NoteContentBox.Height)
            {
                SharpBladeHelper.Manager.StartWPFControlKeyboardCapture(NoteContentBox, false);
                if (_clearContent)
                {
                    NoteContentBox.Clear();
                    _clearContent = false;
                }
                _caretManager = new CaretManager(NoteContentBox, NoteContentBox.Text.Length);
                HighlightInput(NoteContentBox);
                UnhighlightInput(NoteTitleBox);
            }
            else if (capturing)
            {
                SharpBladeHelper.Manager.SetKeyboardCapture(false);
                DisposeCaretManager();
                UnhighlightInput(NoteContentBox);
                UnhighlightInput(NoteTitleBox);
            }
        }