Re: Problems with gnome window hints



>>>>> "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.)

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.

Tom



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