lcl: TPageControl: set dock site rectangle in DockOver and not in PositionDockRect since PositionDockRect used in other unrelated to dock over cases

git-svn-id: trunk@20092 -
This commit is contained in:
paul 2009-05-21 07:58:18 +00:00
parent a0897c76f4
commit a8ae3b4f66
3 changed files with 13 additions and 10 deletions

View File

@ -279,9 +279,10 @@ type
protected
class procedure WSRegisterClass; override;
procedure DoAddDockClient(Client: TControl; const ARect: TRect); override;
procedure DockOver(Source: TDragDockObject; X, Y: Integer;
State: TDragState; var Accept: Boolean); override;
procedure DoRemoveDockClient(Client: TControl); override;
function DoUndockClientMsg(NewTarget, Client: TControl):boolean; override;
procedure PositionDockRect(DragDockObject: TDragDockObject); override;
public
constructor Create(TheOwner: TComponent); override;
function FindNextPage(CurPage: TTabSheet;

View File

@ -95,6 +95,16 @@ begin
end;
end;
procedure TPageControl.DockOver(Source: TDragDockObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
P: TPoint;
begin
P := Parent.ClientToScreen(Point(Left, Top));
Source.DockRect := Rect(P.X, P.Y, P.X + Width, P.Y + Height);
DoDockOver(Source, X, Y, State, Accept);
end;
procedure TPageControl.DoRemoveDockClient(Client: TControl);
begin
// we cannot search for client page here since Client.Parent
@ -108,14 +118,6 @@ begin
Result := inherited DoUndockClientMsg(NewTarget, Client);
end;
procedure TPageControl.PositionDockRect(DragDockObject: TDragDockObject);
var
P: TPoint;
begin
P := Parent.ClientToScreen(Point(Left, Top));
DragDockObject.DockRect := Rect(P.X, P.Y, P.X + Width, P.Y + Height);
end;
constructor TPageControl.Create(TheOwner: TComponent);
begin
PageClass:=TTabSheet;

View File

@ -1942,7 +1942,7 @@ begin
{$else}
EventBox := gtk_event_box_new;
gtk_event_box_set_visible_window(PGtkEventBox(EventBox), False);
TempWidget := CreateFixedClientWidget(false);
TempWidget := CreateFixedClientWidget(False);
gtk_container_add(GTK_CONTAINER(EventBox), TempWidget);
gtk_container_add(GTK_CONTAINER(p), EventBox);
gtk_widget_show(EventBox);