Re: GUnique [Was: gnome-utils branched for GNOME 2.16]



On 9/24/06, Alex Jones <alex weej com> wrote:
On Sun, 2006-09-24 at 09:13 -0400, Owen Taylor wrote:
> Is "extensible" compatible with hiding the gory details of start-up
> notification timestamps? I don't know. I don't have a good sense
> of what a prototypical D-Bus exporting application looks like.

Although timestamps are important, note that they are only part of
handling startup-notification.  I think we can almost make
"extensible" compatible with hiding the gory details of
startup-notification; the main thing is we just need an extra slot in
the dbus messages for sending the relevant startup-notification/launch
information.  We could write some kind of
   gtk_get_important_launch_info(&launch_info);
function to be called on the sending side, make sure the dbus message
includes launch_info, and then have the receving side call
   gtk_window_associate_with_data(window, launch_info);
before showing the relevant window.  Here I'm suggesting
gtk_window_associate_with_data() as a replacement for
gtk_window_set_startup_id() (from bug 347375); I think
assocate_with_data generalizes it for the new stuff Alex is proposing
and I think future-proofs it a little bit more.

I've been dodging the issue of startup-notification just because I don't
really fully understand it. I figure that solutions for these kind of
issues are just things you can bolt on.

That's what I was afraid of.  You can't.  To solve these issues, you
need data from the "launching" process., meaning that you have to send
extra information along with your messages.  This is true for both the
launch-an-actual-second-process-of-said-app case (what GUnique
currently handles as part of the second-process) as well as the
send-specified-dbus-message-to-said-app case (which you are
proposing).  Please include an extra slot in your message proposal to
allow this.

> What I've seen tends to be a bit messy, especially in C.

To say the least.  :)  There were a few reasons for this -- (1)
metacity & gtk+ previously didn't have sufficient support to make
things simpler (which was was partially a reflection of the spec at
the time), (2) we made apps handle all the gory details themselves,
and (3) apps actually had to work around gtk+ in various ways (e.g. to
actually obtain the startup notification information since gtk+
grabbed it and hid it).

Cheers,
Elijah



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