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

Reply via email to