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