Re: [g-a-devel] GnomeClient replacement?

On Tue, 2006-07-25 at 19:20, James Henstridge wrote:

> Havoc's summary at the bottom of his email says why the current
> gnome_program_init() code is a hack:
> > > In summary:
> > >   - if every libgtk app should do something, get that code in gtk
(in the olden days this was not acceptable to the gtk+ team, but I agree
that it makes sense to put it there now)
> > >   - if every libgnome-using app should do something, get that code in
> > >     libgnome
this is what the gnome_program_init code does now (and it was indeed in
> > >   - if only a particular app should do something, get that code in that
> > >     app
yes, that is what happens now for such apps.
> Assuming that we want accessibility turned on for all GTK programs,
> then performing that initialisation in a libgnome routine is
> suboptimal since not every app links to libgnome (e.g. metacity).  The
> fact that the current initialisation code is in gnome_program_init()
> means that cut-n-paste is necessary.

NO: comments like this are why the misunderstanding flared up.  The
libgnome code is NOT a hack (or at least it clearly was not a hack when
it was written!) for several reasons including the one you give below. 
gnome_program_init() look to be exactly the right place for this code
according to Havoc's "second category" above.

Cutting and pasting the libgnome a11y code into other modules is that
part that's broken.

> If the initialisation code is put in the right place, it only needs to
> be done once (the suggested solution being to make
> gnome-settings-daemon set the gtk-modules XSETTING that libgtk now
> watches).

The initialization code needs access to the xsetting; in the
pre-XSETTING days, this meant GTK_MODULES for pure-gtk+ and gconf for
'gnome' progs.

It makes sense for gtk+ apps to do this via the xsetting now, instead of
the env variable, that would improve the situation.  However this will
not work for programs in the second category ("libgnome using apps"). 
That's why the gnome_program_init code in libgnome has a11y loading

> On the other hand, gnome_program_init() making sure that libgail-gnome
> is initialised if a11y probably is a good idea, since programs linking
> to libgnome probably need libgail-gnome.
> James.

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