On 23/06/2010 15:28, Mattias Gaertner wrote:
On Wed, 23 Jun 2010 11:06:46 +0200
Hans-Peter Diettrich<[email protected]>  wrote:

Martin schrieb:

1. Just Click, without moving your mouse, on a Docking-Header, after
that the Desktop gets a 3px height and full length - big Rect (hard to
explain :( ) which is also shown if you want to dock a form to a
docking-side

Are you sure you use the anchordocking manager and not the easydockmgr?
The anchordocking has by default a drag threshold of 4 pixel. A simple
click on the header does not start the docking.

I can reproduce this here, with the anchor dock package. (didn't count
the pixels, 3 or 4....)

Just a click, it happens on mouse up.
IMO this misbehaviour results from the inappropriate setting of
DragImmediate=True, inherited from Delphi.
Why does that only happen on windows?

It because of:

In  lcl\include\dragmanager.inc  TDockPerformer

1) On mouse down, it executes DragStart =>  but at this time does*not*  yet
draw the rectangle
2) On mouse up it executes DragStop, and it does call  
"ADockObjectCopy.HideDockImage;"
And that draws the rectangle, or rather some of it, at the top of the
screen.

3) ADockObjectCopy.HideDockImage; calls
  WidgetSet.DrawDefaultDockImage(EraseDockRect, DockRect, disHide);

and on windows disHide probaply doesn't do much =>  th pattern is always drawn 
with invert. But since there is no old pattern to delete, it actually paints a new 
one.


Other widgetsets may have better handling of disHide

Martin
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to