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

Reply via email to