[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