Getting rid of libbonoboui, action plan



I'd like to propose a plan of getting rid of libbonoboui, by not forcing
applications that depend on libgnomeui to depend on libgnomeui.
libbonobui depends on libbonobo and therefore on CORBA, which is no good
if you just want a GnomeApp. This should significantly reduce startup
time. In future, many applications will probably use dbus for their
shell instead of our ORB and its OAF infrastructure, so it's plain
stupid to depend on it.

Plan of action
==============

1. Analyze in what way libbonoboui and libgnomeui are interveawed (DONE)

GnomeApp from libgnomeui uses libbonoboui's dock container and its dock
items, for managing its menu, its statusbar and its toolbar.

Also, gnome_gtk_module_info_get calls bonobo_ui_gtk_module_info_get.

2. Chop libbonoboui deps from libgnomeui (TODO)

From taking a quick peek at the code, it looks like all of its
functionality could be replicated with the GtkUIManager. We also have to
decide on whether we want a global
"/desktop/gnome/interface/toolbar_detachable", and
"/desktop/gnome/interface/menubar_detachable" setting. If so, we
probably want a GtkSetting, and add separator menu items, and add new
API to GtkToolbar and GtkMenu/GtkMenuBar. I think this is not very
important, though, although it slightly changes the UI of the
applications.

The restore_window code from gnome-mdi-session.c is currently commented
out, so it won't be any regression to not reload the UI correctly.

Sidenote: I wonder whether we need a new session management framework
which more suitable for saving/reloading UI state. Epiphany for instance
uses its own format (~/.gnome2/epiphany/states.xml). I think the GTK+
plans [1] used to contain some session management stuff, not sure where
it has gone.

The gnome_gtk_module_info_get call is a bit tricky. I think we can copy
the libgnome deps from libbonobo_ui_module_info_get to libgnomeui,
removing any libbonoboui/libgnomeui dependancy, and making libgnomeui
depend on the LIBGNOME_MODULE, and making LIBBONOBOUI depend on
LIBBONOBO_MODULE and LIBGNOME_MODULE. The i18n stuff from
do_low_level_init can also be moved (copied?) to libgnomeui. Calling
both in sequence shouldn't do any harm, and some apps IMHO still rely on
bonobo-i18n.

3. (Topaz)

Remove libbonobo and libbonoboui.

Comments, opinions?

[1] http://www.gtk.org/plan/2.10/


-- 
Christian Neumair <chris gnome-de org>

Attachment: signature.asc
Description: This is a digitally signed message part



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