Move windows between screens

I have a simple proposal which builds on the XRANDR extension. Basically, my proposal is:

If XRANDR is present, then XReparentWindow behaves slightly differently. If the new parent window is on a screen other than the one the window is currently on, then rather than generate a BadWindow error, the window will be reparented successfully and a RANDR event will be generated and sent to the reparented window containing its new root window information. An implementation may require that a compatible visual exist on the new screen. (which XReparentWindow requires on the same screen anyway)

I think this would make working with multiple screens immensely more useful and (with a properly extended window manager) would give 98% of the value of XINERAMA without any of its issues. It would also be possible to use this behavior to allow turning on and off extra screens at run-time as windows on the screen to be shut down can be reparented to another.

Copyright © 1995-2004 John Meacham