bonobo activation per DISPLAY problem


I'm having trouble with the gnome-applets (and other bonobo components
such as gnome-terminal) running with concurrent gnome sessions.  This
worked in 2.14 (Fedora 5), uncertain about 2.16, and is broken in 2.18
and 2.20. 

I'm trying to understand how the environment gets established/checked
for a component factory in bonobo (specifically, where does it compare
the client env. with the factory/component env. and decide whether to
create a new factory/component).  Also, I cannot see how the
gnome-applets actually register with bonobo-activation-server (cannot
find the code that does it!).

The issue is that with multiple concurrent sessions, all of the bonobo
based activations in the second session (eg. add applet to panel, open
terminal) end up referencing the first session.

By explicitly adding an <oaf_attribute name="bonobo:environment"/> (for
DISPLAY,SESSION_MANAGER,etc) to the applets, I can get it them work, but
this would mean fixing evolution, gnome-terminal, nautilus,
gnome-applets, rhythmbox etc.  It seems like some desirable default
behavior was lost in 2.16 or 2.18. 

I've reviewed the code, but as a non-gnome-hacker, I haven't really been
able to do find anything.

Any ideas?


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