Browse Source

Fixed so resize operation by using ctrl + arrow is working again, and also handles the case if the user releases ctrl while still pressing an arrow.

pull/607/head
gumme 11 years ago
parent
commit
56ee23ea8d
  1. 23
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignPanel.cs

23
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignPanel.cs

@ -389,10 +389,17 @@ namespace ICSharpCode.WpfDesign.Designer
if (e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up || e.Key == Key.Down) { if (e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up || e.Key == Key.Down) {
e.Handled = true; e.Handled = true;
PlacementType placementType = Keyboard.IsKeyDown(Key.LeftCtrl) ? PlacementType.Resize : PlacementType.Move;
if (placementOp != null && placementOp.Type != placementType) {
placementOp.Commit();
placementOp = null;
}
if (placementOp == null) { if (placementOp == null) {
dx = 0; dx = 0;
dy = 0; dy = 0;
placementOp = PlacementOperation.Start(Context.Services.Selection.SelectedItems, PlacementType.Move); placementOp = PlacementOperation.Start(Context.Services.Selection.SelectedItems, placementType);
} }
switch (e.Key) { switch (e.Key) {
@ -414,17 +421,17 @@ namespace ICSharpCode.WpfDesign.Designer
{ {
var bounds = info.OriginalBounds; var bounds = info.OriginalBounds;
if (!Keyboard.IsKeyDown(Key.LeftCtrl)) { if (placementType == PlacementType.Move) {
info.Bounds = new Rect(bounds.Left + dx, info.Bounds = new Rect(bounds.Left + dx,
bounds.Top + dy, bounds.Top + dy,
bounds.Width, bounds.Width,
bounds.Height); bounds.Height);
} else { } else if (placementType == PlacementType.Resize) {
if (info.OriginalBounds.Width + dx >= 0 && info.OriginalBounds.Height + dy >= 0) { if (bounds.Width + dx >= 0 && bounds.Height + dy >= 0) {
info.Bounds = new Rect(info.OriginalBounds.Left, info.Bounds = new Rect(bounds.Left,
info.OriginalBounds.Top, bounds.Top,
info.OriginalBounds.Width + dx, bounds.Width + dx,
info.OriginalBounds.Height + dy); bounds.Height + dy);
} }
} }

Loading…
Cancel
Save