Hi,
Alex Jones wrote:
> http://live.gnome.org/DesktopAppsAsDBusServices
>
> Due to lack of interest, it's been on a backburner. Some people
> mentioned that it sounded like it was turning into Bonobo Activation,
> and that "we've been down that path before", which was quite
> demotivating to hear.
The problem with bonobo-activation was not the high-level concept of
having an activatable service, but that it got some details wrong. For
example, it was all messed up if you logged in twice. Neither X
selections nor dbus bus names have that issue. bonobo-activation also
got tangled up with some higher-level component system type of features
like monikers iirc, while dbus and X do not define that layer of
functionality.
Wherever this stuff lives or however it works on the backend, to me the
ideal API would be something like:
static void
open_document_callback(GdkScreen *screen, const char *uri, const char
**other_prop_keys, const char **other_prop_values)
{
GtkWindow *window = document_window_get_for_uri(screen, uri); /* may
return an existing window if (screen,uri) tuple already has a window */
gtk_window_setup_from_launch_props(window, other_prop_keys,
other_prop_values);
gtk_window_present(window);
}
int
main(int argc, char **argv)
{
/* argc, argv are properly ignored, because it should be impossible to
do something from the command line
that can't be done using the dbus OpenDocument() method. A separate
binary exists that parses --display etc.
and calls OpenDocument() accordingly; this separate binary can be
shared among all apps in the desktop.
Note that gdk_display_open() happens only when we get an
OpenDocument(), and then the resulting
screen is passed to the callback.
*/
setup_open_document_callback_and_run_main_loop(open_document_callback);
return 0;
}
I'm no doubt missing some details that are important.
Havoc
_______________________________________________
desktop-devel-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/desktop-devel-list