[Lazarus] Anchor-Docking Bugs
Martin
lazarus at mfriebe.de
Wed Jun 23 16:33:46 CEST 2010
On 23/06/2010 15:28, Mattias Gaertner wrote:
> On Wed, 23 Jun 2010 11:06:46 +0200
> Hans-Peter Diettrich<DrDiettrich1 at aol.com> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20100623/d1a90cae/attachment-0004.html>
More information about the Lazarus
mailing list