From 19e600c7fb2342f5648ed4d64e29c7d8d87b4d42 Mon Sep 17 00:00:00 2001 From: jkuehner Date: Sun, 27 Apr 2014 23:14:26 +0200 Subject: [PATCH] Fix UNDO on Resize and Skew Extension --- .../Extensions/RotateThumbExtension.cs | 6 ++++++ .../Project/Extensions/SkewThumbExtension.cs | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RotateThumbExtension.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RotateThumbExtension.cs index 616a1807a7..63e7e70d68 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RotateThumbExtension.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RotateThumbExtension.cs @@ -66,6 +66,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions DragListener drag = new DragListener(rotateThumb); drag.Started += drag_Rotate_Started; drag.Changed += drag_Rotate_Changed; + drag.Completed += drag_Rotate_Completed; return rotateThumb; } @@ -143,6 +144,11 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions } } + void drag_Rotate_Completed(ICSharpCode.WpfDesign.Designer.Controls.DragListener drag) + { + operation.Commit(); + } + #endregion protected override void OnInitialized() diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SkewThumbExtension.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SkewThumbExtension.cs index e941ab6649..ad6839044e 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SkewThumbExtension.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SkewThumbExtension.cs @@ -56,6 +56,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions private DesignItem rtTransform; private Thumb thumb1; private Thumb thumb2; + PlacementOperation operation; private void dragX_Started(DragListener drag) { @@ -78,6 +79,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions } rtTransform = this.ExtendedItem.Properties[FrameworkElement.RenderTransformProperty].Value; + + operation = PlacementOperation.Start(extendedItemArray, PlacementType.Resize); } private void dragX_Changed(DragListener drag) @@ -112,6 +115,11 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions _adornerLayer.UpdateAdornersForElement(this.ExtendedItem.View, true); } + void dragX_Completed(ICSharpCode.WpfDesign.Designer.Controls.DragListener drag) + { + operation.Commit(); + } + private void dragY_Started(DragListener drag) { _adornerLayer = this.adornerPanel.TryFindParent(); @@ -133,6 +141,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions } rtTransform = this.ExtendedItem.Properties[FrameworkElement.RenderTransformProperty].Value; + + operation = PlacementOperation.Start(extendedItemArray, PlacementType.Resize); } private void dragY_Changed(DragListener drag) @@ -168,6 +178,11 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions _adornerLayer.UpdateAdornersForElement(this.ExtendedItem.View, true); } + void dragY_Completed(ICSharpCode.WpfDesign.Designer.Controls.DragListener drag) + { + operation.Commit(); + } + #endregion protected override void OnInitialized() @@ -200,9 +215,11 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions DragListener drag1 = new DragListener(thumb1); drag1.Started += dragX_Started; drag1.Changed += dragX_Changed; + drag1.Completed += dragX_Completed; DragListener drag2 = new DragListener(thumb2); drag2.Started += dragY_Started; - drag2.Changed += dragY_Changed; + drag2.Changed += dragY_Changed; + drag2.Completed += dragY_Completed; } void OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)