protected void updateTargetRequest() {
		repairStartLocation();
		ChangeBoundsRequest request = (ChangeBoundsRequest) getTargetRequest();
		request.setEditParts(getOperationSet());
		Dimension delta = getDragMoveDelta();

		request.setConstrainedMove(getCurrentInput().isModKeyDown(
				MODIFIER_CONSTRAINED_MOVE));
		request.setSnapToEnabled(!getCurrentInput().isModKeyDown(
				MODIFIER_NO_SNAPPING));

		// constrains the move to dx=0, dy=0, or dx=dy if shift is depressed
		if (request.isConstrainedMove()) {
			float ratio = 0;

			if (delta.width != 0)
				ratio = (float) delta.height / (float) delta.width;

			ratio = Math.abs(ratio);
			if (ratio > 0.5 && ratio < 1.5) {
				if (Math.abs(delta.height) > Math.abs(delta.width)) {
					if (delta.height > 0)
						delta.height = Math.abs(delta.width);
					else
						delta.height = -Math.abs(delta.width);
				} else {
					if (delta.width > 0)
						delta.width = Math.abs(delta.height);
					else
						delta.width = -Math.abs(delta.height);
				}
			} else {
				if (Math.abs(delta.width) > Math.abs(delta.height))
					delta.height = 0;
				else
					delta.width = 0;
			}
		}

		Point moveDelta = new Point(delta.width, delta.height);
		request.getExtendedData().clear();
		request.setMoveDelta(moveDelta);
		snapPoint(request);

		request.setLocation(getLocation());
		request.setType(getCommandName());
	}