|
|
|
@ -16,13 +16,15 @@ namespace ICSharpCode.WpfDesign.Designer.Services
@@ -16,13 +16,15 @@ namespace ICSharpCode.WpfDesign.Designer.Services
|
|
|
|
|
sealed class DragMoveMouseGesture : ClickOrDragMouseGesture |
|
|
|
|
{ |
|
|
|
|
bool isDoubleClick; |
|
|
|
|
bool setSelectionIfNotMoving; |
|
|
|
|
MoveLogic moveLogic; |
|
|
|
|
|
|
|
|
|
internal DragMoveMouseGesture(DesignItem clickedOn, bool isDoubleClick) |
|
|
|
|
internal DragMoveMouseGesture(DesignItem clickedOn, bool isDoubleClick, bool setSelectionIfNotMoving = false) |
|
|
|
|
{ |
|
|
|
|
Debug.Assert(clickedOn != null); |
|
|
|
|
|
|
|
|
|
this.isDoubleClick = isDoubleClick; |
|
|
|
|
this.setSelectionIfNotMoving = setSelectionIfNotMoving; |
|
|
|
|
this.positionRelativeTo = clickedOn.Services.DesignPanel; |
|
|
|
|
|
|
|
|
|
moveLogic = new MoveLogic(clickedOn); |
|
|
|
@ -41,10 +43,14 @@ namespace ICSharpCode.WpfDesign.Designer.Services
@@ -41,10 +43,14 @@ namespace ICSharpCode.WpfDesign.Designer.Services
|
|
|
|
|
|
|
|
|
|
protected override void OnMouseUp(object sender, MouseButtonEventArgs e) |
|
|
|
|
{ |
|
|
|
|
if (!hasDragStarted && isDoubleClick) { |
|
|
|
|
// user made a double-click
|
|
|
|
|
Debug.Assert(moveLogic.Operation == null); |
|
|
|
|
moveLogic.HandleDoubleClick(); |
|
|
|
|
if (!hasDragStarted) { |
|
|
|
|
if (isDoubleClick) { |
|
|
|
|
// user made a double-click
|
|
|
|
|
Debug.Assert(moveLogic.Operation == null); |
|
|
|
|
moveLogic.HandleDoubleClick(); |
|
|
|
|
} else if (setSelectionIfNotMoving) { |
|
|
|
|
services.Selection.SetSelectedComponents(new DesignItem[] { moveLogic.ClickedOn }, SelectionTypes.Auto); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
moveLogic.Stop(); |
|
|
|
|
Stop(); |
|
|
|
|