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); } }