On Wed, 23 Jun 2010 15:33:46 +0100 Martin <[email protected]> wrote:
> 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. Fixed. Please test. > Other widgetsets may have better handling of disHide Mattias -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
