Browse Source

Fixed bug in TextView.BackgroundRenderer_Added that could cause a VisualLinesInvalidException during rendering.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5066 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
82e6a42b97
  1. 18
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs

18
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs

@ -119,7 +119,7 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -119,7 +119,7 @@ namespace ICSharpCode.AvalonEdit.Rendering
DocumentChanged(this, EventArgs.Empty);
}
/// <inheritdoc/>
/// <inheritdoc cref="IWeakEventListener.ReceiveWeakEvent"/>
protected virtual bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e)
{
if (managerType == typeof(TextDocumentWeakEventManager.Changing)) {
@ -800,6 +800,8 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -800,6 +800,8 @@ namespace ICSharpCode.AvalonEdit.Rendering
/// </summary>
protected override Size ArrangeOverride(Size finalSize)
{
if (!VisualLinesValid)
throw new VisualLinesInvalidException();
foreach (UIElement layer in layers) {
layer.Arrange(new Rect(new Point(0, 0), finalSize));
}
@ -859,23 +861,13 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -859,23 +861,13 @@ namespace ICSharpCode.AvalonEdit.Rendering
void BackgroundRenderer_Added(IBackgroundRenderer renderer)
{
ConnectToTextView(renderer);
InvalidateVisualAndLayerVisuals();
InvalidateLayer(renderer.Layer);
}
void BackgroundRenderer_Removed(IBackgroundRenderer renderer)
{
DisconnectFromTextView(renderer);
InvalidateVisualAndLayerVisuals();
}
void InvalidateVisualAndLayerVisuals()
{
InvalidateVisual();
foreach (UIElement layer in this.Layers) {
// invalidate known layers
if (layer is Layer)
layer.InvalidateVisual();
}
InvalidateLayer(renderer.Layer);
}
/// <inheritdoc/>

Loading…
Cancel
Save