Mark Morgan Lloyd schrieb:

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.

Okay with multiheaded graphics cards, dunno how to work with multiple cards.

Otherwise the two monitors are separate *screens* (specific, technocal term- go look at your xorg.conf) identified as :0, :1 and so on.

I cannot test that right now, having Linux only in virtual machines. But from my Drag&Drop and IDE experiments I know that nothing special is required to spread the IDE windows across multiple monitors, once the monitors are arranged to form an desktop.

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).

AFAIR the term "desktop" became popular with the multiple-desktop feature of X11, never implemented by Windows. Multi-monitor desktops are different, in Delphi/Lazarus they are described by the Screen object.

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).

You can test that yourself, when you have a system with multiple monitors. Write a test form that displays its screen coordinates, then move it around. AFAIR moving a form to an different desktop can be achieved by the window context menu.

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.

The :0.0 notation may denote a desktop and monitor number. Deciphering such an ID requires access to the "native" window implementation, which is hidden from LCL users. Of course the system and window manager has to know about all that, see the Monitors object in Delphi/Lazarus and related methods/functions.

I assume that low-level access to distinct monitors requires such addressing, but ordinary applications don't have to bother with the availability, arrangement and resolution of multiple monitors on their desktop. The widgetset experts may contribute more precise information.

DoDi


--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to