Re: LibUnique as blessed dependency



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




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