diff --git a/src/editor/f_main.pas b/src/editor/f_main.pas
index 3f65bba33336ec96c8a80a4f7a8c0f0e268a3efa..339fbcf095c2bde9e415b606f646037c78786c43 100644 (file)
--- a/src/editor/f_main.pas
+++ b/src/editor/f_main.pas
MouseRDown: Boolean;
MouseLDownPos: Types.TPoint;
MouseRDownPos: Types.TPoint;
- WASDOffset: TPoint;
SelectFlag: Byte = SELECTFLAG_NONE;
MouseAction: Byte = MOUSEACTION_NONE;
if MouseAction = MOUSEACTION_MOVEOBJ then
begin
MoveSelectedObjects(ssShift in Shift, ssCtrl in Shift,
- MousePos.X-LastMovePoint.X+WASDOffset.X,
- MousePos.Y-LastMovePoint.Y+WASDOffset.Y);
- WASDOffset.X := 0;
- WASDOffset.Y := 0;
+ MousePos.X-LastMovePoint.X,
+ MousePos.Y-LastMovePoint.Y);
end
else
// Меняем размер выделенного объекта:
if (SelectedObjectCount = 1) and
(SelectedObjects[GetFirstSelected].Live) then
begin
- dWidth := MousePos.X-LastMovePoint.X+WASDOffset.X;
- dHeight := MousePos.Y-LastMovePoint.Y+WASDOffset.Y;
- WASDOffset.X := 0;
- WASDOffset.Y := 0;
+ dWidth := MousePos.X-LastMovePoint.X;
+ dHeight := MousePos.Y-LastMovePoint.Y;
case ResizeType of
RESIZETYPE_VERTICAL: dWidth := 0;
RESIZEDIR_LEFT: dWidth := -dWidth;
end;
- ResizeObject(SelectedObjects[GetFirstSelected].ObjectType,
- SelectedObjects[GetFirstSelected].ID,
- dWidth, dHeight, ResizeDirection);
-
- LastMovePoint := MousePos;
+ if ResizeObject(SelectedObjects[GetFirstSelected].ObjectType,
+ SelectedObjects[GetFirstSelected].ID,
+ dWidth, dHeight, ResizeDirection) then
+ LastMovePoint := MousePos;
end;
end;
end;
begin
if (MouseLDown or MouseRDown) and (Position >= DotStep) then
begin
- Dec(WASDOffset.Y, DotStep);
+ if DrawRect <> nil then
+ begin
+ Inc(MouseLDownPos.y, DotStep);
+ Inc(MouseRDownPos.y, DotStep);
+ end;
+ Inc(LastMovePoint.Y, DotStep);
RenderPanelMouseMove(Sender, Shift, RenderMousePos().X, RenderMousePos().Y);
end;
Position := IfThen(Position > DotStep, Position-DotStep, 0);
begin
if (MouseLDown or MouseRDown) and (Position+DotStep <= Max) then
begin
- Inc(WASDOffset.Y, DotStep);
+ if DrawRect <> nil then
+ begin
+ Dec(MouseLDownPos.y, DotStep);
+ Dec(MouseRDownPos.y, DotStep);
+ end;
+ Dec(LastMovePoint.Y, DotStep);
RenderPanelMouseMove(Sender, Shift, RenderMousePos().X, RenderMousePos().Y);
end;
Position := IfThen(Position+DotStep < Max, Position+DotStep, Max);
begin
if (MouseLDown or MouseRDown) and (Position >= DotStep) then
begin
- Dec(WASDOffset.X, DotStep);
+ if DrawRect <> nil then
+ begin
+ Inc(MouseLDownPos.x, DotStep);
+ Inc(MouseRDownPos.x, DotStep);
+ end;
+ Inc(LastMovePoint.X, DotStep);
RenderPanelMouseMove(Sender, Shift, RenderMousePos().X, RenderMousePos().Y);
end;
Position := IfThen(Position > DotStep, Position-DotStep, 0);
begin
if (MouseLDown or MouseRDown) and (Position+DotStep <= Max) then
begin
- Inc(WASDOffset.X, DotStep);
+ if DrawRect <> nil then
+ begin
+ Dec(MouseLDownPos.x, DotStep);
+ Dec(MouseRDownPos.x, DotStep);
+ end;
+ Dec(LastMovePoint.X, DotStep);
RenderPanelMouseMove(Sender, Shift, RenderMousePos().X, RenderMousePos().Y);
end;
Position := IfThen(Position+DotStep < Max, Position+DotStep, Max);