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