On Sun, Mar 14, 2010 at 5:40 PM, Ville Skyttä <ville.skytta(a)iki.fi> wrote:
If an app uses GTK+ or Qt, does that alone always imply that it satisfies the
desktop entry spec's requirements for StartupNotify=true, i.e. no further
examination of the app's behavior is necessary?
The main tricky situation comes when the app implements
single-instance behavior internally, and does some sort of IPC (dbus,
whatever) to talk to an existing instance. In GNOME 3 this doesn't
matter as much because we do single-instance by default, but otherwise
it's definitely possible to get the stale "Starting foo..." until it
times out. Actually handling this correctly is tricky[1], and I just
noticed one of my apps doesn't. Maybe I should really take the plunge
and backport app tracking to GNOME 2 which would obviate this.
But as a general rule: add it. Even for the IPC case, it only occurs
if the user tries to relaunch an existing app, which (albeit without
data, but with some educated background) is unusual. Without IPC,
having it has a 99.9% chance of being correct.
[1] libunique handles this, but see also my fix for my app here:
http://git.gnome.org/browse/hotssh/commit/?id=57c43b39413c5128983286f5c09...
We have plans to basically make all this work out of the box when
using GTK+ but it blocks on gdbus.