[ILUG] Re: Project Idea

From: John P . Looney (valen at domain tuatha.org)
Date: Wed 13 Oct 1999 - 14:32:44 IST


On Wed, Oct 13, 1999 at 01:54:04PM +0100, Tony mentioned:
> I need some advice on a Project idea I have.
> The idea was to use X to create a virtual network Desktop.
> You'd be able to drag X-apps from one monitor to the next and maybe
> use one of the monitors to pan across the others. Anybody know how
> possible/difficlut this is? Has it been done before?

 You are a sick little puppy, you know that ? You've been shown QNX's
"Photon" desktop, haven't you ?

 Thing about it is, that most X server-side resources just have XID handles
for the client program's to handle them with. An XID is an integer - if you
want to do something to a window, you need to have it's XID, and the
display it's on. The display contains all the network info, etc.

 To be able to move a window from one server to another, you would have to
create an identical window & every resource it uses on the new server.
Assuming you don't have to worry about things like the same font's not
being on the new server, different colour depths, all applications would
have to be aware that they would now have to use a different display in
conjunction with the window.

 That's not to say it's impossible. What you would have to do is create a
new layer of abstraction - so that the programmer makes a window, and
doesn't have a display to worry about. GDK almost does this - but there are
still a few places where the Gdk wrappers for Xlib functions require a
variable like the GdkWindow struct (which contains a pointer to the
original display, and the XID of the X window).

 Check out GDK basics here: http://oldap.med.yale.edu/ggad/chapter10.html
If you really want to do it, try and see could you modify GDK to be
independant of the X Display struct that some of it still relies on. I've
no idea how you are going to abstract away a GdKVisual struct though :)

 Because GDK can keep a record of all the objects you have created on the
server, it could replicate what was created on another server, and then
replace the GdkWindow->xwindow struct members with the XID's of the new
windows, and generate an "expose" event of some sort.

 Nasty. But how hard can it be ?

Kate

-- 
Microsoft. The best reason in the world to drink beer.
http://www.redbrick.dcu.ie/~valen


This archive was generated by hypermail 2.1.6 : Thu 06 Feb 2003 - 13:04:43 GMT