Re: Problems with gnome window hints
- From: raster redhat com
- To: tromey cygnus com
- cc: mvachhar vger rutgers edu, gnome-list gnome org
- Subject: Re: Problems with gnome window hints
- Date: Thu, 26 Nov 1998 10:32:00 -0500 (EST)
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]