From 984b1ab9e169338f675c5e82a12bdada3f3119ca Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sun, 30 Aug 2009 18:11:02 +0000 Subject: [PATCH] Add TextView.InvalidateLayer. Enabled bracket highlighting. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@4842 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Src/BracketHighlightRenderer.cs | 10 ++++---- .../AvalonEdit.AddIn/Src/CodeEditor.cs | 8 +++---- .../Rendering/TextView.cs | 23 ++++++++----------- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs index 2bda1e5556..c9a4907bcb 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/BracketHighlightRenderer.cs @@ -4,9 +4,11 @@ // // $Revision$ // -using ICSharpCode.AvalonEdit.Document; using System; +using System.Diagnostics; using System.Windows.Media; + +using ICSharpCode.AvalonEdit.Document; using ICSharpCode.AvalonEdit.Rendering; using ICSharpCode.SharpDevelop.Editor; @@ -21,9 +23,7 @@ namespace ICSharpCode.AvalonEdit.AddIn public void SetHighlight(BracketSearchResult result) { this.result = result; - var layer = textView.GetKnownLayer(Layer); - if (layer != null) - layer.InvalidateVisual(); + textView.InvalidateLayer(this.Layer); } public BracketHighlightRenderer(TextView textView) @@ -35,7 +35,7 @@ namespace ICSharpCode.AvalonEdit.AddIn this.borderPen.Freeze(); this.textView = textView; - //this.textView.BackgroundRenderers.Add(this); + this.textView.BackgroundRenderers.Add(this); } public KnownLayer Layer { diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs index 22e966b95c..eb77eac3e1 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs @@ -299,10 +299,10 @@ namespace ICSharpCode.AvalonEdit.AddIn if (activeAdapter.Language != null) { var bracketSearchResult = activeAdapter.Language.BracketSearcher.SearchBracket(activeAdapter.Document, activeAdapter.Caret.Offset); -// if (activeAdapter == primaryTextEditorAdapter) -// this.primaryBracketRenderer.SetHighlight(bracketSearchResult); -// else -// this.secondaryBracketRenderer.SetHighlight(bracketSearchResult); + if (activeAdapter == primaryTextEditorAdapter) + this.primaryBracketRenderer.SetHighlight(bracketSearchResult); + else + this.secondaryBracketRenderer.SetHighlight(bracketSearchResult); } StatusBarService.SetCaretPosition(caret.Column, caret.Line, caret.Column); diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs index bd088f9c00..6e19efd337 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs @@ -247,19 +247,6 @@ namespace ICSharpCode.AvalonEdit.Rendering get { return layers; } } - /// - /// Retrieves a known layer from the Layers collection. - /// - public UIElement GetKnownLayer(KnownLayer knownLayer) - { - foreach (UIElement layer in layers) { - LayerPosition p = LayerPosition.GetLayerPosition(layer); - if (p != null && p.KnownLayer == knownLayer) - return layer; - } - return null; - } - /// /// Inserts a new layer at a position specified relative to an existing layer. /// @@ -379,6 +366,16 @@ namespace ICSharpCode.AvalonEdit.Rendering } } + /// + /// Causes a known layer to redraw. + /// This method does not invalidate visual lines; + /// use the method to do that. + /// + public void InvalidateLayer(KnownLayer knownLayer) + { + InvalidateMeasure(DispatcherPriority.Normal); + } + /// /// Causes the text editor to redraw all lines overlapping with the specified segment. /// Does nothing if segment is null.