Browse Source

Fixed two bugs introduced by Layers.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3844 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
986adf1754
  1. 2
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/CaretLayer.cs
  2. 2
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/Layer.cs
  3. 7
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/SelectionLayer.cs
  4. 1
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/TextView.cs
  5. 19
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/TextViewWeakEventManager.cs

2
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/CaretLayer.cs

@ -23,6 +23,8 @@ namespace ICSharpCode.AvalonEdit.Gui
public CaretLayer(TextView textView) : base(textView, KnownLayer.Caret) public CaretLayer(TextView textView) : base(textView, KnownLayer.Caret)
{ {
this.IsHitTestVisible = false;
blinkAnimation = new DoubleAnimationUsingKeyFrames(); blinkAnimation = new DoubleAnimationUsingKeyFrames();
blinkAnimation.KeyFrames.Add(new DiscreteDoubleKeyFrame(1, KeyTime.FromPercent(0))); blinkAnimation.KeyFrames.Add(new DiscreteDoubleKeyFrame(1, KeyTime.FromPercent(0)));
blinkAnimation.KeyFrames.Add(new DiscreteDoubleKeyFrame(0, KeyTime.FromPercent(0.5))); blinkAnimation.KeyFrames.Add(new DiscreteDoubleKeyFrame(0, KeyTime.FromPercent(0.5)));

2
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/Layer.cs

@ -25,8 +25,6 @@ namespace ICSharpCode.AvalonEdit.Gui
Debug.Assert(textView != null); Debug.Assert(textView != null);
this.textView = textView; this.textView = textView;
this.knownLayer = knownLayer; this.knownLayer = knownLayer;
this.IsHitTestVisible = false;
} }
protected override GeometryHitTestResult HitTestCore(GeometryHitTestParameters hitTestParameters) protected override GeometryHitTestResult HitTestCore(GeometryHitTestParameters hitTestParameters)

7
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/SelectionLayer.cs

@ -17,13 +17,18 @@ namespace ICSharpCode.AvalonEdit.Gui
public SelectionLayer(TextArea textArea) : base(textArea.TextView, KnownLayer.Selection) public SelectionLayer(TextArea textArea) : base(textArea.TextView, KnownLayer.Selection)
{ {
this.IsHitTestVisible = false;
this.textArea = textArea; this.textArea = textArea;
TextViewWeakEventManager.VisualLinesChanged.AddListener(textView, this); TextViewWeakEventManager.VisualLinesChanged.AddListener(textView, this);
TextViewWeakEventManager.ScrollOffsetChanged.AddListener(textView, this);
} }
public bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e) public bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e)
{ {
if (managerType == typeof(TextViewWeakEventManager.VisualLinesChanged)) { if (managerType == typeof(TextViewWeakEventManager.VisualLinesChanged)
|| managerType == typeof(TextViewWeakEventManager.ScrollOffsetChanged))
{
InvalidateVisual(); InvalidateVisual();
return true; return true;
} }

1
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/TextView.cs

@ -935,6 +935,7 @@ namespace ICSharpCode.AvalonEdit.Gui
if (!scrollOffset.X.IsClose(offset)) { if (!scrollOffset.X.IsClose(offset)) {
SetScrollOffset(new Vector(offset, scrollOffset.Y)); SetScrollOffset(new Vector(offset, scrollOffset.Y));
InvalidateVisual(); InvalidateVisual();
textLayer.InvalidateVisual();
} }
} }

19
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Gui/TextViewWeakEventManager.cs

@ -52,5 +52,24 @@ namespace ICSharpCode.AvalonEdit.Gui
source.VisualLinesChanged -= DeliverEvent; source.VisualLinesChanged -= DeliverEvent;
} }
} }
/// <summary>
/// Weak event manager for the <see cref="TextView.ScrollOffsetChanged"/> event.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")]
public sealed class ScrollOffsetChanged : WeakEventManagerBase<ScrollOffsetChanged, TextView>
{
/// <inheritdoc/>
protected override void StartListening(TextView source)
{
source.ScrollOffsetChanged += DeliverEvent;
}
/// <inheritdoc/>
protected override void StopListening(TextView source)
{
source.ScrollOffsetChanged -= DeliverEvent;
}
}
} }
} }

Loading…
Cancel
Save