ICSharpCode.AvalonEdit.Editing.LineNumberMargin.OnMouseLeftButtonDown C# (CSharp) Method

OnMouseLeftButtonDown() protected method

protected OnMouseLeftButtonDown ( System.Windows.Input.MouseButtonEventArgs e ) : void
e System.Windows.Input.MouseButtonEventArgs
return void
        protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            base.OnMouseLeftButtonDown(e);
            if (!e.Handled && TextView != null && textArea != null) {
                e.Handled = true;
                textArea.Focus();

                SimpleSegment currentSeg = GetTextLineSegment(e);
                if (currentSeg == SimpleSegment.Invalid)
                    return;
                textArea.Caret.Offset = currentSeg.Offset + currentSeg.Length;
                if (CaptureMouse()) {
                    selecting = true;
                    selectionStart = new AnchorSegment(Document, currentSeg.Offset, currentSeg.Length);
                    if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift) {
                        SimpleSelection simpleSelection = textArea.Selection as SimpleSelection;
                        if (simpleSelection != null)
                            selectionStart = new AnchorSegment(Document, simpleSelection);
                    }
                    textArea.Selection = new SimpleSelection(selectionStart);
                    if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift) {
                        ExtendSelection(currentSeg);
                    }
                }
            }
        }