mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-25 16:19:16 +02:00
IDE: designer: fixed updating Form.Left/Top on window move
git-svn-id: trunk@18628 -
This commit is contained in:
parent
40f211f179
commit
26293e4375
@ -167,8 +167,8 @@ type
|
|||||||
property OldHeight:integer read FOldHeight write FOldHeight;
|
property OldHeight:integer read FOldHeight write FOldHeight;
|
||||||
property OldFormRelativeLeftTop: TPoint read FOldFormRelativeLeftTop
|
property OldFormRelativeLeftTop: TPoint read FOldFormRelativeLeftTop
|
||||||
write FOldFormRelativeLeftTop;
|
write FOldFormRelativeLeftTop;
|
||||||
property UsedLeft: integer read FUsedLeft write FUsedLeft;
|
property UsedLeft: integer read FUsedLeft write FUsedLeft;// form relative (not Left)
|
||||||
property UsedTop: integer read FUsedTop write FUsedTop;
|
property UsedTop: integer read FUsedTop write FUsedTop;// form relative (not Top)
|
||||||
property UsedWidth: integer read FUsedWidth write FUsedWidth;
|
property UsedWidth: integer read FUsedWidth write FUsedWidth;
|
||||||
property UsedHeight: integer read FUsedHeight write FUsedHeight;
|
property UsedHeight: integer read FUsedHeight write FUsedHeight;
|
||||||
property Flags: TSelectedControlFlags read FFlags write FFlags;
|
property Flags: TSelectedControlFlags read FFlags write FFlags;
|
||||||
@ -617,10 +617,11 @@ var
|
|||||||
begin
|
begin
|
||||||
if FIsTComponent then
|
if FIsTComponent then
|
||||||
begin
|
begin
|
||||||
GetComponentBounds(TComponent(FPersistent), ALeft, ATop, AWidth, AHeight);
|
|
||||||
ALeftTop := GetParentFormRelativeTopLeft(TComponent(FPersistent));
|
ALeftTop := GetParentFormRelativeTopLeft(TComponent(FPersistent));
|
||||||
ALeft := ALeftTop.X;
|
ALeft := ALeftTop.X;
|
||||||
ATop := ALeftTop.Y;
|
ATop := ALeftTop.Y;
|
||||||
|
AWidth := GetComponentWidth(TComponent(FPersistent));
|
||||||
|
AHeight := GetComponentHeight(TComponent(FPersistent));
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
ALeft := 0;
|
ALeft := 0;
|
||||||
@ -2888,7 +2889,6 @@ function TControlSelection.CheckForLCLChanges(Update: boolean): boolean;
|
|||||||
|
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
PropsChanged: Boolean;
|
|
||||||
begin
|
begin
|
||||||
Result:=false;
|
Result:=false;
|
||||||
if FControls.Count>=1 then begin
|
if FControls.Count>=1 then begin
|
||||||
@ -2899,35 +2899,17 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
PropsChanged:=false;
|
if Update and Result then
|
||||||
if Update then
|
|
||||||
begin
|
|
||||||
if Result then begin
|
|
||||||
//debugln('TControlSelection.CheckForLCLChanges');
|
|
||||||
for i:=0 to FControls.Count-1 do
|
|
||||||
if Items[i].IsTComponent and BoundsChanged(Items[i]) then
|
|
||||||
InvalidateMarkersForComponent(TComponent(Items[i].Persistent));
|
|
||||||
InvalidateGuideLinesCache;
|
|
||||||
PropsChanged:=not IsResizing;
|
|
||||||
end else if LookupRootSelected and (FLookupRoot is TControl) then
|
|
||||||
begin
|
|
||||||
// check for form moves
|
|
||||||
for i:=0 to FControls.Count-1 do
|
|
||||||
begin
|
|
||||||
if Items[i].Persistent=FLookupRoot then
|
|
||||||
begin
|
|
||||||
if (Items[i].UsedLeft<>GetComponentLeft(FLookupRoot))
|
|
||||||
or (Items[i].UsedTop<>GetComponentTop(FLookupRoot)) then
|
|
||||||
PropsChanged:=not IsResizing;
|
|
||||||
break;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if PropsChanged then
|
|
||||||
begin
|
begin
|
||||||
UpdateBounds;
|
//debugln('TControlSelection.CheckForLCLChanges');
|
||||||
DoChangeProperties;
|
for i:=0 to FControls.Count-1 do
|
||||||
|
if Items[i].IsTComponent and BoundsChanged(Items[i]) then
|
||||||
|
InvalidateMarkersForComponent(TComponent(Items[i].Persistent));
|
||||||
|
InvalidateGuideLinesCache;
|
||||||
|
if not IsResizing then begin
|
||||||
|
UpdateBounds;
|
||||||
|
DoChangeProperties;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -1270,7 +1270,14 @@ begin
|
|||||||
Sender.Dispatch(TheMessage);
|
Sender.Dispatch(TheMessage);
|
||||||
//debugln('*** TDesigner.MoveControl A ',Sender.Name,':',Sender.ClassName,' ',ControlSelection.SelectionForm=Form,' ',not ControlSelection.IsResizing,' ',ControlSelection.IsSelected(Sender));
|
//debugln('*** TDesigner.MoveControl A ',Sender.Name,':',Sender.ClassName,' ',ControlSelection.SelectionForm=Form,' ',not ControlSelection.IsResizing,' ',ControlSelection.IsSelected(Sender));
|
||||||
if ControlSelection.SelectionForm=Form then begin
|
if ControlSelection.SelectionForm=Form then begin
|
||||||
ControlSelection.CheckForLCLChanges(true);
|
if (not ControlSelection.CheckForLCLChanges(true))
|
||||||
|
and (Sender=Form)
|
||||||
|
and ControlSelection.LookupRootSelected then begin
|
||||||
|
// the selected form was moved (nothing else has changed)
|
||||||
|
// ControlSelection does not need an update, but properties like
|
||||||
|
// Form.Left/Top have to be updated in the OI
|
||||||
|
OnPropertiesChanged(Self);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user