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