mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-13 10:39:20 +02:00
MG: fixed mouse coords while component dragging
git-svn-id: trunk@1932 -
This commit is contained in:
parent
882fd86034
commit
423b97da22
@ -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;
|
||||
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user