From 0d24b46bbea9ec1d9781877d0abe13f5924e1da5 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sun, 26 Sep 2010 18:52:12 +0200 Subject: [PATCH] IconBarMargin: Fixed cancelling drag'n'drop using Escape. --- .../AvalonEdit.AddIn/Src/IconBarMargin.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs index 940db01918..6be173c17e 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/IconBarMargin.cs @@ -141,8 +141,11 @@ namespace ICSharpCode.AvalonEdit.AddIn { dragDropBookmark = bm; dragDropStartPoint = dragDropCurrentPoint = e.GetPosition(this).Y; - if (TextView != null) - TextView.PreviewKeyDown += TextView_PreviewKeyDown; + if (TextView != null) { + TextArea area = TextView.Services.GetService(typeof(TextArea)) as TextArea; + if (area != null) + area.PreviewKeyDown += TextArea_PreviewKeyDown; + } } void CancelDragDrop() @@ -150,14 +153,17 @@ namespace ICSharpCode.AvalonEdit.AddIn if (dragDropBookmark != null) { dragDropBookmark = null; dragStarted = false; - if (TextView != null) - TextView.PreviewKeyDown -= TextView_PreviewKeyDown; + if (TextView != null) { + TextArea area = TextView.Services.GetService(typeof(TextArea)) as TextArea; + if (area != null) + area.PreviewKeyDown -= TextArea_PreviewKeyDown; + } ReleaseMouseCapture(); InvalidateVisual(); } } - void TextView_PreviewKeyDown(object sender, KeyEventArgs e) + void TextArea_PreviewKeyDown(object sender, KeyEventArgs e) { // any key press cancels drag'n'drop CancelDragDrop();