manualdock: docked messages are no longer hidden, if there're no source window

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1192 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
skalogryz
2010-03-30 06:51:50 +00:00
parent b3cad37666
commit 5fa7dd2067

View File

@@ -96,7 +96,8 @@ begin
if not (Assigned(SourceEditorManagerIntf) and Assigned(SourceEditorManagerIntf.ActiveSourceWindow)) if not (Assigned(SourceEditorManagerIntf) and Assigned(SourceEditorManagerIntf.ActiveSourceWindow))
or not Assigned(IDEMessagesWindow) or not Assigned(IDEMessagesWindow)
then Exit; then Exit;
if not Assigned(panel) then AllocControls(SourceEditorManagerIntf.ActiveSourceWindow); if not Assigned(panel) then
AllocControls(SourceEditorManagerIntf.ActiveSourceWindow);
split.visible:=true; split.visible:=true;
panel.visible:=true; panel.visible:=true;
with IDEMessagesWindow do with IDEMessagesWindow do
@@ -158,8 +159,7 @@ destructor TManualDocker.Destroy;
begin begin
if Assigned(panel) then UpdateDockState(MsgWnd, panel); if Assigned(panel) then UpdateDockState(MsgWnd, panel);
SaveStates; SaveStates;
split.Free; DeallocControls;
panel.Free;
inherited Destroy; inherited Destroy;
end; end;
@@ -184,11 +184,11 @@ end;
procedure TManualDocker.AllocControls(AParent: TWinControl); procedure TManualDocker.AllocControls(AParent: TWinControl);
begin begin
FCurrentSrcWin := AParent; FCurrentSrcWin := AParent;
panel := TPanel.Create(nil); panel := TPanel.Create(AParent);
panel.Parent := AParent; panel.Parent := AParent;
panel.BorderStyle := bsNone; panel.BorderStyle := bsNone;
split := TSplitter.Create(nil); split := TSplitter.Create(AParent);
split.Parent := AParent; split.Parent := AParent;
RealignControls; RealignControls;
@@ -196,8 +196,8 @@ end;
procedure TManualDocker.DeallocControls; procedure TManualDocker.DeallocControls;
begin begin
FreeAndNil(split); split:=nil;
FreeAndNil(panel); panel:=nil;
end; end;
procedure TManualDocker.RealignControls; procedure TManualDocker.RealignControls;
@@ -228,16 +228,13 @@ var
begin begin
IsDocked := MsgWnd.docked; IsDocked := MsgWnd.docked;
if FCurrentSrcWin <> Sender then exit; if FCurrentSrcWin <> Sender then exit;
if IsDocked then if IsDocked then ChangeDocking(False);
ChangeDocking(False);
FCurrentSrcWin := nil;
DeallocControls; DeallocControls;
FCurrentSrcWin := nil;
if IsDocked then begin if IsDocked then begin
if (SourceEditorManagerIntf.SourceWindowCount >= 1) then if (SourceEditorManagerIntf.SourceWindowCount >= 1) then
ChangeDocking(True) ChangeDocking(True);
else
if Assigned(IDEMessagesWindow) then
IDEMessagesWindow.Hide;
MsgWnd.Docked := IsDocked; MsgWnd.Docked := IsDocked;
end; end;
end; end;