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 @@ -23,6 +23,8 @@ namespace ICSharpCode.AvalonEdit.Gui
public CaretLayer(TextView textView) : base(textView, KnownLayer.Caret)
{
this.IsHitTestVisible = false;
blinkAnimation = new DoubleAnimationUsingKeyFrames();
blinkAnimation.KeyFrames.Add(new DiscreteDoubleKeyFrame(1, KeyTime.FromPercent(0)));
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 @@ -25,8 +25,6 @@ namespace ICSharpCode.AvalonEdit.Gui
Debug.Assert(textView != null);
this.textView = textView;
this.knownLayer = knownLayer;
this.IsHitTestVisible = false;
}
protected override GeometryHitTestResult HitTestCore(GeometryHitTestParameters hitTestParameters)

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

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

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

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

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

@ -52,5 +52,24 @@ namespace ICSharpCode.AvalonEdit.Gui @@ -52,5 +52,24 @@ namespace ICSharpCode.AvalonEdit.Gui
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