Browse Source

Fix NullReferenceException when drawing collapsed fold markers (bug introduced by optimization in r6169)

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6172 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
f1b882bce1
  1. 4
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Folding/FoldingElementGenerator.cs
  2. 8
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/FormattedTextElement.cs
  3. 5
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/SingleCharacterElementGenerator.cs

4
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Folding/FoldingElementGenerator.cs

@ -94,8 +94,8 @@ namespace ICSharpCode.AvalonEdit.Folding @@ -94,8 +94,8 @@ namespace ICSharpCode.AvalonEdit.Folding
public override void Draw(DrawingContext drawingContext, Point origin, bool rightToLeft, bool sideways)
{
Rect r = ComputeBoundingBox(rightToLeft, sideways);
r.Offset(origin.X, origin.Y - this.Element.Text.Baseline);
var metrics = Format(double.PositiveInfinity);
Rect r = new Rect(origin.X, origin.Y - metrics.Baseline, metrics.Width, metrics.Height);
drawingContext.DrawRectangle(null, new Pen(Brushes.Gray, 1), r);
base.Draw(drawingContext, origin, rightToLeft, sideways);
}

8
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/FormattedTextElement.cs

@ -23,14 +23,6 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -23,14 +23,6 @@ namespace ICSharpCode.AvalonEdit.Rendering
internal string text;
internal TextLine textLine;
/// <summary>
/// Gets the formatted text.
/// </summary>
[Obsolete("For improved performance, FormattedTextElement should be used with TextLine instead of FormattedText.")]
public FormattedText Text {
get { return formattedText; }
}
/// <summary>
/// Creates a new FormattedTextElement that displays the specified text
/// and occupies the specified length in the document.

5
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/SingleCharacterElementGenerator.cs

@ -231,9 +231,8 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -231,9 +231,8 @@ namespace ICSharpCode.AvalonEdit.Rendering
public override void Draw(DrawingContext drawingContext, Point origin, bool rightToLeft, bool sideways)
{
Point newOrigin = new Point(origin.X + 1, origin.Y);
Rect r = base.ComputeBoundingBox(rightToLeft, sideways);
r.Offset(newOrigin.X, newOrigin.Y - this.Element.Text.Baseline);
r.Width += 1;
var metrics = Format(double.PositiveInfinity);
Rect r = new Rect(newOrigin.X + 1, newOrigin.Y - metrics.Baseline, metrics.Width + 1, metrics.Height);
drawingContext.DrawRoundedRectangle(Brushes.DarkGray, null, r, 2.5, 2.5);
base.Draw(drawingContext, newOrigin, rightToLeft, sideways);
}

Loading…
Cancel
Save