[Lazarus] Made dockable IDE work :-)
pascaldragon at googlemail.com
Wed Dec 22 20:44:59 CET 2010
On 22.12.2010 14:48, Hans-Peter Diettrich wrote:
> Today I could find another workaround for the last severe bug in the
> dockable IDE. Now it's possible at least to drag and dock the IDE
> windows with the mouse :-)
> How to proceed?
> Some of the problems:
> My work is based on Graeme's Git repository, so that it's not easy to
> supply SVN patches.
> My patches are workarounds for several problems, in detail with
> TControl, TWinControl and the DragManager. More analysis is required, in
> order to find out the real reasons of the misbehaviour.
> Many bugs only manifest in the IDE, not in ordinary applications or the
> DragManager examples, what makes it even harder to find the appropriate
> cure, that does not break other application or component code. Many
> patches have to be applied before it's even possible to start debugging
> the IDE. Afterwards every fix may result in different remaining
> problems, possibly not covered by the remaining workarounds.
> Last not least I'm still offline, and cannot report the many observed
> bugs one by one. I only can try to write down the observed misbehaviour
> during my recent work, and let somebody else care for the rest.
>  One of my experiments resulted in a refactored (stripped down)
> DragManager, with the Performers removed and their code moved into the
> DragObject classes. An according patch can be applied easily, because it
> essentially exchanges the dragmanager.inc by a very new version, and
> extends dragobject.inc. OTOH it has to be applied as a whole, impossible
> to break it down into smaller steps.
>  Since many bugs can be observed only in the IDE, they also should be
> fixed in the IDE code. This is not so easy, due to the many methods and
> event handlers that may be involved. Many bugs definitely originate in
> the TControl and TWinControl implementation, where I suspect workarounds
> for other components (IDE, csCaptureMouse, anchor docking...). Removal
> of these workarounds may cause malfunction of the affected components,
> perhaps only in specific widgetsets. Nonetheless I'd suggest to trim
> that code, to achive the Delphi compatible behaviour again, and then
> think about a separate or combined implementation of
> platform-independent (Lazarus specific) dragging.
Would you please tell me what type of docking you are using?
I am using anchor docking without any problems with docking and
undocking windows (on Linux as well as on Win32). I have also tried easy
docking on Win32 at first, but while docking and undocking itself worked
it had some other troubles (I don't say that anchor docking has no
problems, but they are less troublesome ^^).
More information about the Lazarus