From 5fa7dd20675d7b8b4199d6b168b3b7f85326de6d Mon Sep 17 00:00:00 2001 From: skalogryz Date: Tue, 30 Mar 2010 06:51:50 +0000 Subject: [PATCH] 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 --- components/manualdock/mandocking.pas | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/components/manualdock/mandocking.pas b/components/manualdock/mandocking.pas index b7b63a808..365341e31 100644 --- a/components/manualdock/mandocking.pas +++ b/components/manualdock/mandocking.pas @@ -96,7 +96,8 @@ begin if not (Assigned(SourceEditorManagerIntf) and Assigned(SourceEditorManagerIntf.ActiveSourceWindow)) or not Assigned(IDEMessagesWindow) then Exit; - if not Assigned(panel) then AllocControls(SourceEditorManagerIntf.ActiveSourceWindow); + if not Assigned(panel) then + AllocControls(SourceEditorManagerIntf.ActiveSourceWindow); split.visible:=true; panel.visible:=true; with IDEMessagesWindow do @@ -158,8 +159,7 @@ destructor TManualDocker.Destroy; begin if Assigned(panel) then UpdateDockState(MsgWnd, panel); SaveStates; - split.Free; - panel.Free; + DeallocControls; inherited Destroy; end; @@ -184,11 +184,11 @@ end; procedure TManualDocker.AllocControls(AParent: TWinControl); begin FCurrentSrcWin := AParent; - panel := TPanel.Create(nil); + panel := TPanel.Create(AParent); panel.Parent := AParent; panel.BorderStyle := bsNone; - split := TSplitter.Create(nil); + split := TSplitter.Create(AParent); split.Parent := AParent; RealignControls; @@ -196,8 +196,8 @@ end; procedure TManualDocker.DeallocControls; begin - FreeAndNil(split); - FreeAndNil(panel); + split:=nil; + panel:=nil; end; procedure TManualDocker.RealignControls; @@ -228,16 +228,13 @@ var begin IsDocked := MsgWnd.docked; if FCurrentSrcWin <> Sender then exit; - if IsDocked then - ChangeDocking(False); - FCurrentSrcWin := nil; + if IsDocked then ChangeDocking(False); DeallocControls; + FCurrentSrcWin := nil; + if IsDocked then begin if (SourceEditorManagerIntf.SourceWindowCount >= 1) then - ChangeDocking(True) - else - if Assigned(IDEMessagesWindow) then - IDEMessagesWindow.Hide; + ChangeDocking(True); MsgWnd.Docked := IsDocked; end; end;