From 82e6a42b977e5e9c555b221c4ba8fb436bf204eb Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 13 Oct 2009 16:28:40 +0000 Subject: [PATCH] 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 --- .../Rendering/TextView.cs | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs index 672c62c647..e6041b6dba 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs @@ -119,7 +119,7 @@ namespace ICSharpCode.AvalonEdit.Rendering DocumentChanged(this, EventArgs.Empty); } - /// + /// protected virtual bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e) { if (managerType == typeof(TextDocumentWeakEventManager.Changing)) { @@ -800,6 +800,8 @@ namespace ICSharpCode.AvalonEdit.Rendering /// 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 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); } ///