MG: fixed mouse coords while component dragging

git-svn-id: trunk@1932 -
This commit is contained in:
lazarus 2002-08-17 23:40:17 +00:00
parent 882fd86034
commit 423b97da22

View File

@ -33,6 +33,7 @@ unit Designer;
interface
{$DEFINE VerboseDesigner}
{$DEFINE NewMousePos}
uses
Classes, LCLType, LCLLinux, Forms, Controls, LMessages, GraphType, Graphics,
@ -342,7 +343,9 @@ end;
procedure TDesigner.MouseDownOnControl(Sender: TControl; TheMessage: TLMMouse);
var i,
CompIndex:integer;
{$IfNDef NewMousePos}
SenderClientOrigin:TPoint;
{$EndIf}
SelectedCompClass: TRegisteredComponent;
NonVisualComp: TComponent;
Begin
@ -355,16 +358,22 @@ Begin
MouseDownSender:=Sender;
end;
{$IfDef NewMousePos}
MouseDownPos:=GetFormRelativeMousePosition(Form);
{$Else}
SenderClientOrigin:=GetParentFormRelativeClientOrigin(Sender);
MouseDownPos := Point(TheMessage.Pos.X+SenderClientOrigin.X,
TheMessage.Pos.Y+SenderClientOrigin.Y);
{$EndIf}
LastMouseMovePos:=MouseDownPos;
{$IFDEF VerboseDesigner}
writeln('************************************************************');
write('MouseDownOnControl');
write(' ',Sender.Name,':',Sender.ClassName,
' ClientOrg=',SenderClientOrigin.X,',',SenderClientOrigin.Y);
write(' ',Sender.Name,':',Sender.ClassName);
{$IfNDef NewMousePos}
write(' ClientOrg=',SenderClientOrigin.X,',',SenderClientOrigin.Y);
{$EndIf}
write(' Msg=',TheMessage.Pos.X,',',TheMessage.Pos.Y);
write(' Mouse=',MouseDownPos.X,',',MouseDownPos.Y);
writeln('');
@ -458,7 +467,10 @@ var
Shift: TShiftState;
SenderParentForm: TCustomForm;
RubberBandWasActive: boolean;
SenderClientOrigin, ParentClientOrigin: TPoint;
{$IfNDef NewMousePos}
SenderClientOrigin: TPoint;
{$EndIf}
ParentClientOrigin: TPoint;
SelectedCompClass: TRegisteredComponent;
NewParent: TWinControl;
Begin
@ -476,17 +488,23 @@ Begin
if (TheMessage.keys and MK_Control) = MK_Control then
Shift := Shift +[ssCTRL];
{$IfDef NewMousePos}
MouseUpPos:=GetFormRelativeMousePosition(Form);
{$Else}
SenderClientOrigin:=GetParentFormRelativeClientOrigin(Sender);
MouseUpPos := Point(TheMessage.Pos.X+SenderClientOrigin.X,
TheMessage.Pos.Y+SenderClientOrigin.Y);
{$EndIf}
MoveX:=MouseUpPos.X-MouseDownPos.X;
MoveY:=MouseUpPos.Y-MouseDownPos.Y;
{$IFDEF VerboseDesigner}
writeln('************************************************************');
write('MouseLeftUpOnControl');
write(' ',Sender.Name,':',Sender.ClassName,
' ClientOrigin=',SenderClientOrigin.X,',',SenderClientOrigin.Y);
write(' ',Sender.Name,':',Sender.ClassName);
{$IfNDef NewMousePos}
write(' ClientOrigin=',SenderClientOrigin.X,',',SenderClientOrigin.Y);
{$EndIf}
write(' Msg=',TheMessage.Pos.X,',',TheMessage.Pos.Y);
write(' Move=',MoveX,',',MoveY);
writeln('');
@ -585,7 +603,9 @@ Procedure TDesigner.MouseMoveOnControl(Sender: TControl;
var TheMessage: TLMMouse);
var
Shift : TShiftState;
{$IfNDef NewMousePos}
SenderClientOrigin:TPoint;
{$EndIf}
SenderParentForm:TCustomForm;
OldMouseMovePos: TPoint;
begin
@ -604,9 +624,13 @@ begin
if SenderParentForm=nil then exit;
OldMouseMovePos:=LastMouseMovePos;
{$IfDef NewMousePos}
LastMouseMovePos:=GetFormRelativeMousePosition(Form);
{$Else}
SenderClientOrigin:=GetParentFormRelativeClientOrigin(Sender);
LastMouseMovePos:=Point(TheMessage.Pos.X+SenderClientOrigin.X,
TheMessage.Pos.Y+SenderClientOrigin.Y);
{$EndIf}
//debugging commented out
@ -676,17 +700,22 @@ begin
end;
procedure TDesigner.MouseRightUpOnControl(Sender : TControl; TheMessage:TLMMouse);
{$IfNDef NewMousePos}
var
MouseX, MouseY : Integer;
SenderOrigin: TPoint;
{$EndIf}
begin
FHintTimer.Enabled := False;
{$IfDef NewMousePos}
MouseUpPos:=GetFormRelativeMousePosition(Form);
{$Else}
SenderOrigin:=GetParentFormRelativeTopLeft(Sender);
MouseX:=TheMessage.Pos.X+SenderOrigin.X;
MouseY:=TheMessage.Pos.Y+SenderOrigin.Y;
MouseUpPos.X:=TheMessage.Pos.X+SenderOrigin.X;
MouseUpPos.Y:=TheMessage.Pos.Y+SenderOrigin.Y;
{$EndIf}
BuildPopupMenu;
FPopupMenu.Popup(MouseX,MouseY);
FPopupMenu.Popup(MouseUpPos.X,MouseUpPos.Y);
end;
{