From fc14dbf587c9bfe125a818878b8ac056cac3027d Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 11 Feb 2008 13:56:59 +0000 Subject: [PATCH] improve dock header redrawing git-svn-id: trunk@14087 - --- lcl/ldocktree.pas | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lcl/ldocktree.pas b/lcl/ldocktree.pas index b861f906f9..28fe121418 100644 --- a/lcl/ldocktree.pas +++ b/lcl/ldocktree.pas @@ -1426,8 +1426,10 @@ procedure TLazDockTree.MouseMessage(var Msg: TLMMouse); NewMouseState.IsMouseDown := (GetKeyState(VK_LBUTTON) and $80) <> 0; if not CompareMem(@FMouseState, @NewMouseState, SizeOf(NewMouseState)) then begin + if not CompareMem(@FMouseState.Rect, @NewMouseState.Rect, SizeOf(NewMouseState.Rect)) then + InvalidateRect(DockSite.Handle, @FMouseState.Rect, False); FMouseState := NewMouseState; - InvalidateRect(DockSite.Handle, @ARect, False); + InvalidateRect(DockSite.Handle, @NewMouseState.Rect, False); end; end; var @@ -2821,19 +2823,21 @@ var Control: TControl; Part: TLazDockHeaderPart; ARect: TRect; - NewState: TDockHeaderMouseState; + NewMouseState: TDockHeaderMouseState; begin Control := FindHeader(X, Y, Part); if (Control <> nil) then begin ARect := GetTitleRect(Control); ARect := TDockHeader.GetRectOfPart(ARect, GetTitleOrientation(Control), Part); - NewState.Rect := ARect; - NewState.IsMouseDown := (GetKeyState(VK_LBUTTON) and $80) <> 0; - if not CompareMem(@FMouseState, @NewState, SizeOf(NewState)) then + NewMouseState.Rect := ARect; + NewMouseState.IsMouseDown := (GetKeyState(VK_LBUTTON) and $80) <> 0; + if not CompareMem(@FMouseState, @NewMouseState, SizeOf(NewMouseState)) then begin - FMouseState := NewState; - InvalidateRect(Handle, @ARect, False); + if not CompareMem(@FMouseState.Rect, @NewMouseState.Rect, SizeOf(NewMouseState.Rect)) then + InvalidateRect(Handle, @FMouseState.Rect, False); + FMouseState := NewMouseState; + InvalidateRect(Handle, @NewMouseState.Rect, False); end; end; end;