Re: Problems with gnome window hints



On 26 Nov, Tom Tromey scribbled:
->  >>>>> "Manish" == Manish Vachharajani <mvachhar@vger.rutgers.edu> writes:
->  
->  Manish> I am having a small problem with gnome window hints.  I am
->  Manish> running E from CVS so it should support gnome.  I am running
->  Manish> the WM from the session manager.
->  
->  Manish> Here is the problem.  If the panel starts first, it checks to
->  Manish> see if a gnome compliant wm exists, which doesn't, since E
->  Manish> hasn't had time to start up yet, and so it does not set the
->  Manish> gnome window hints for the layer, state, etc.
->  
->  Manish> How would I work around this problem?  Is there any way to
->  Manish> force the session manager to start clients in a specific
->  Manish> order?
->  
->  This is an interesting question.  However, I think it points to the
->  wrong answer.
->  
->  We probably could change the session manager to start clients in some
->  particular order.  However, this would be a hack, and wouldn't
->  necessarily work anyway.  Unless the session manager had some magical
->  way to know that the window manager had successfully initialized
->  itself, there would be no way to know when to start running the other
->  clients.  However, just starting them immediately would lead to a race
->  condition (if panel initializes before E, you lose again).  Adding in
->  a delay would be ugly, to say the least.
->  
->  Even worse, what if you want to switch window managers?  I think it
->  this is strange: if I switch from a losing window manager to a winning
->  window manager, the panel won't notice, and so I'll be stuck with the
->  losing behavior until I log out and back in again (if E wins the
->  race!).
->  
->  
->  I think there are two possible real solutions:
->  
->  1. Change the panel and other clients to set properties unconditionally.
->     (I haven't read up on the properties, so I don't know if this is
->     really feasible in all the interesting situations.)

this means under WM's that dont understand the hints strange things
happen.. like.. ooh your panel gets a titlebar and gets managed and..
you can guess anyhting from there.. (all drawers for the panel do this
too) - not only will the filemanager suffer but GMC will too. all the
dektop icons will have a decidedly bad day.

->  
->  2. If #1 isn't feasible, add a way for clients to detect when a winning
->     wm starts up.  Then change the clients to detect this situation
->     and modify their behavior accordingly.  This scenario avoids the
->     problem because it doesn't matter if the panel wins the race -- it
->     will change its behavior once it sees that E starts up.

to detect a WM appearing or dissapearing the app has to:
1. select on propertychangenotfy's on the root window. If there is
currently no gnome WM there then wait till the _WIN_SUPPORTING_WM_CHECK
changes - when it does perform a chekc for the WM chekc window it
poitns to.. if thats there - select on it for destroys
(structurenotify) then sit around - whenevr that window is destroyed
the WM went away - set status of WM to 0 and re-initialise all toplevel
windows (or modify them for a  workaround when no WM is around) o bakc
to non WM there state and wait for a property change/.. if the WM
starts up re-init the windows (or modify then unmap and remap them) to
work... it's not pretty.

->  Tom
->  
->  

-- 
--------------- Codito, ergo sum - "I code, therefore I am" --------------------
raster@rasterman.com       /\___ /\ ___/||\___ ____/|/\___  raster@redhat.com
Carsten Haitzler           | _ //__\\ __||_ __\\ ___|| _ /  Red Hat Advanced
218/21 Conner Drive        || // __ \\_ \ | |   \ _/_|| /   Development Labs
Chapel Hill NC 27514 USA   ||\\\/  \//__/ |_|   /___/||\\   919 547 0012 ext 282
+1 (919) 929 9443, 801 4392   For pure Enlightenment   http://www.rasterman.com/



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