Re: multihead support in evolution

Hi Shahms,

On Tue, 2002-07-30 at 16:19, Shahms E. King wrote:
> I'd be happy to look into it if you could give me a "jumping off point"
> so to speak.

	Ok; there are 2 things you need to do:

	a) Ensure that the DISPLAY context parameter passed on each oaf 
	   request is correct, to do this you need to back-port this:

	/* FIXME: nasty contractual bonobo-activation issues here */
	context = bonobo_activation_context_get ();
	CORBA_exception_init (&ev);
	CORBA_Context_set_one_value (
		context, "display",
		DisplayString (gdk_display),
	CORBA_exception_free (&ev);

	To oaf; [ make this a function in some evolution library shared across
components ].

	Then you need to make sure that whenever a component is registered with
oaf; that you do something like:

	/* Create the factory. */
        registration_id = eel_bonobo_make_registration_id (factory_iid);
	factory = bonobo_generic_factory_new (registration_id, 
	g_free (registration_id);

	Which makes it a per display IID: where the eel_..._ is defined as:

char *
eel_bonobo_make_registration_id (const char *iid)
	return bonobo_activation_make_registration_id (
		iid, DisplayString (gdk_display));

	[ you need to include gdkx.h to make that work ].

	Then to test it you just need to run evolution, run xnest:

	Xnest -ac :2.0 &
	export DISPLAY=:2.0

	and run evolution again - when it works you won :-)

	It'd be great to get this tested and working in evolution, since we'll
be stuck with a Gtk 1.2 / Gnome 1.4 version for the next few months.



 mmeeks gnu org  <><, Pseudo Engineer, itinerant idiot

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