[Lazarus] Threads and Libraries (dll and so)
Mark Morgan Lloyd
markMLl.lazarus at telemetry.co.uk
Fri Feb 7 11:19:50 CET 2014
Hans-Peter Diettrich wrote:
> Mark Morgan Lloyd schrieb:
>> Hans-Peter Diettrich wrote:
>>> Mark Morgan Lloyd schrieb:
>>>
>>>> OK, so assuming an OS similar to X, can a single app support two
>>>> forms on different displays, and/or move forms between displays?
>>>
>>> That's the job of the desktop/window manager, on every OS. When a
>>> form shall be updated on screen, the manager determines the monitor
>>> from the form's screen coordinates, then asks the form to paint
>>> itself. Moving forms means nothing but changing their screen
>>> coordinates, then request an screen update.
>>
>> My understanding is that moving forms *between* *displays* requires
>> rather more than that, in fact I'm not sure it's doable on X (if it
>> were then we wouldn't need Xinerama, Xdmx etc.).
>
> Try to move a form with the mouse to an different monitor. This works on
> Linux without additional libraries. Linux also can show the same form on
> all desktops, without additional code or libraries.
Oh no it doesn't. You need something like Xinerama (RandR, Xdmx)
installed, or hardware/drivers that support multiheaded operation.
Otherwise the two monitors are separate *screens* (specific, technocal
term- go look at your xorg.conf) identified as :0, :1 and so on.
> If you mean "desktops" for "displays", or different X sessions, that's a
> bit different. But even then it's only a process property, on which
> desktop or X session a form is shown.
You're jumbling terms up badly there. "Desktop" has no meaning in
classic X organisation, these days it's roughly synonymous with "window
manager" where a window manager operates on a single screen (i.e.
identified as display :0, display :1 and so on). Where a desktop has
some sort of pager then forms can be moved around trivially: my
understanding is that on unix this is handled by minimisation/hiding (on
Windows there is the windowstation layer, which is somewhat different).
So I stick to my position that it's at best unclear whether forms can be
moved around between displays (I think you'd like to call those
sessions, in any event corresponding to a screen) and whether an app can
distribute forms over multiple displays (e.g. one form on display :0,
another on :1 and so on).
For completeness, displays are usually identified as :0 etc. but there's
actually another layer hence :0.0 :0.1 etc. I've not come across this
being used even on e.g. Xinerama, and I don't know what it's supposed to
represent.
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the Lazarus
mailing list