[Lazarus] IDE docking flaw?
DrDiettrich1 at aol.com
Wed Jun 8 03:15:58 CEST 2011
Mattias Gaertner schrieb:
>> Sorry, I still cannot find a Layout list in the MainBar :-(
> Your MiniIDE has default layouts, because you added them to the menu.
> Same can be done by an IDE package that registers a dock master.
A menu entry is different from a ComboBox. Such a visual component can
already be used by the the IDE's SimpleLayout...
> For anchordocking the simplelayout is only important, when the user
> uninstalls/deactivates anchordocking. That's why simplelayout should
> store screen bounds of docked forms.
Not a good idea with notebook-docking :-(
> If I understand you correct, you want to use simplelayout in parallel
> with your dockmaster, right?
Not really, but GetForm may introduce such a dependency. Why should a
DockMaster guess where to place new forms, when the IDE already
established such defaults?
>>>> I've improved TScreen
>>>> and ShowForm already, so that my ShowForm will force all forms into the
>>>> monitor bounds. [Patch available on demand]
>>> Have you tested this under Linux/gtk2?
>> No, but it should work when Screen.Monitors returns the true monitor
>> bounds. More complicated is exclusion of the TaskBar...
> AFAIK Screen.Monitors changes when switching to another workspace.
May be, but how does the IDE handle such switching?
[AFAIR at least Ubuntu uses system-wide screen and monitor settings]
IMO such a problem occurs only when an already running application is
assigned to an different or all workspaces. What should an application
do then, provided that it is notified at all?
> And it seems the monitor bounds are not always correct from the
> beginning, for example when the IDE creates its first window and calls
> restore layout. This seems to be a general problem on all widgetsets.
That's why I made the ScreenBounds dynamic: GetScreenBounds determines
the bounds on its first call, at least. This can be done whenever the
screen manager sends a notification of changed screen resolution,
taskbar position, or the like.
More information about the Lazarus