* Call DoHeaderMouseMove only if inside header

* Don't adjust the coordinates passed to DoHeaderMouseMove since they already in client coordinates

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1097 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
blikblum
2009-12-30 11:00:45 +00:00
parent 139fedb7c8
commit 4656d793e8

View File

@ -9988,10 +9988,9 @@ begin
P := Point(XPos,YPos); P := Point(XPos,YPos);
//P := Treeview.ScreenToClient(Point(XPos, YPos)); //P := Treeview.ScreenToClient(Point(XPos, YPos));
//todo: see if OnHeaderMouseMove is fired even if not inside header
Treeview.DoHeaderMouseMove(GetShiftState, P.X, P.Y + Integer(FHeight));
if not InHeader(P) then if not InHeader(P) then
Exit; Exit;
Treeview.DoHeaderMouseMove(GetShiftState, P.X, P.Y);
if ((AdjustHoverColumn(P)) or ((FDownIndex >= 0) and (FHoverIndex <> FDownIndex))) then if ((AdjustHoverColumn(P)) or ((FDownIndex >= 0) and (FHoverIndex <> FDownIndex))) then
begin begin
// We need a mouse leave detection from here for the non client area. The best solution available would be the // We need a mouse leave detection from here for the non client area. The best solution available would be the
@ -10000,12 +9999,14 @@ begin
// (although, I don't like it...). // (although, I don't like it...).
KillTimer(Treeview.Handle, HeaderTimer); KillTimer(Treeview.Handle, HeaderTimer);
SetTimer(Treeview.Handle, HeaderTimer, 50, nil); SetTimer(Treeview.Handle, HeaderTimer, 50, nil);
// todo: under lcl, the hint is show even if HintMouseMessage is not implemented
// Is it necessary here?
// use Delphi's internal hint handling for header hints too // use Delphi's internal hint handling for header hints too
if hoShowHint in FOptions then if hoShowHint in FOptions then
begin begin
// client coordinates! // client coordinates!
XPos := P.x; XPos := P.x;
YPos := P.y + Integer(FHeight); YPos := P.y;
Application.HintMouseMessage(Treeview, Message); Application.HintMouseMessage(Treeview, Message);
end; end;
end; end;