public override void Dismiss() { if (!_isDismissed) { // Stop listening to the caret movement event if (_trackCaret) { base.textView.Caret.PositionChanged -= new EventHandler <CaretPositionChangedEventArgs>(OnCaretPositionChanged); } _isDismissed = true; // Fire the "Dismissed" event. This will signal consumers (namely, the session stack) to release pointers to this // session and let us die a peaceful death of garbage collection base.RaiseDismissed(); // Now that we're dismissed, there's no reason to hang-on to the rest of this stuff. _componentContext = null; _activeSignatures = null; _readOnlySignatures = null; _selectedSignature = null; base.Dismiss(); } }
public SignatureHelpSession(SignatureHelpBroker componentContext, ITextView textView, ITrackingPoint triggerPoint, bool trackCaret) : base(textView, triggerPoint) { _componentContext = componentContext; // If we were asked to track the caret, go ahead and subscribe to the event that tracks its movement. _trackCaret = trackCaret; if (_trackCaret) { base.textView.Caret.PositionChanged += new EventHandler <CaretPositionChangedEventArgs>(OnCaretPositionChanged); } }