Re: ICCCM compliance question ...



Hi all, 

Owen Taylor writes:
 > GTK+ has no concept of multi-headed applications ...
 > every window must be on the same display and same screen;
 > so until that changes, there is no point in worrying about
 > it.

The fact that gtk apps can only map windows on a single screen
is not really relevent to the discussion because session 
management is not a screen, display or X server based concept.

 > (If the session manager for the window manager for :0.1 
 > isn't the same as the sesssion manager for the window
 > manager for :0.0, then if an app is displaying windows
 > on both screens, things just aren't going to work nicely.)

There is nothing to stop you running multiple session managers
with multiple window managers and apps divided them between them 
in arbitrary ways. The effects are perfectly predictable.

When you close one of the session managers all the apps that
are in its session are closed down. This will include any 
window managers in the session and might leave you with some 
screens without window managers. 

The apps which are clients of other session managers will continue 
to run. If these apps had windows mapped on the screens that have 
lost their window managers then they will still be there but will 
have lost their WM frames, etc. 

The details of where those windows are on the screen (etc.) will 
have been saved by the window manager that used to be managing 
the screen. 

If you restart the session that you just closed then the window 
manager will restore the states of all the windows, including 
the ones that were not in the session that you closed. 

If, instead, you close another session then some of the windows 
on the unmanaged screen may disappear as their apps close down.
However, you can then restart both sessions in either order
and exactly restore the screens which were left unmanaged by the 
closing the first session.

Apps can even make changes to the windows that they have mapped
on the unmanaged screens without completely breaking the set up. 
Obviously, when you restart the window manager for the unmanaged 
screen after doing this then it will not find the same windows 
that were there when it was closed down. However, it will still
correctly restore the states of all the windows that it recognises.

The problem with running multiple session managers occurs when 
one of them closes down before another so that its apps unmap 
windows from a screen without the window manager for that screen 
saving its state. In this case, the windows will reappear in 
"default" positions when they are remapped.

However, even this problem can be resolved providing that all
of the apps on the display are clients of session managers which
themselves are (ultimately) clients of a master session manager.
Restarting the master will always restore everything correctly
providing each session manager requests a save from its parent
when it is shut down.

This discussion remains unchanged if we go beyond the multiple 
screens case to multiple displays and multiple hosts. 

If everybody ran their session managers independently from
their X servers as clients of a master session manager run by 
Mr Gates then he could close down and restart the entire of X. 

However, why would he restart it ?

Felix



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]