xapp-sn-watcher.c: Don't try to use a null pointer as a hash table
lookup key.
When a new item tries to register, its key is added to the item table
with a null value, to prevent trying to register the same client
multiple times. When registration is finished, the key is removed,
and re-used to add the new proxy back into the table.
If the item disappears before that registration finished, we remove
it from the table (handle_sn_item_name_owner_lost), so when the item
registration completes (it will because a proxy doesn't need an owner),
our steal/re-add fails because the key was removed already.
This will have us steal the key early when completing registration,
and abort if it's null.
Also wrap g_object_unref when removing an item from the table to
prevent a warning.
a0fa7a5...
by
Clement Lefebvre <email address hidden>
sn-item.c: Always set an available icon, regardless of visibility state
requested by an app. The icon and visibility state aren't necessarily set
at the same time.
build: Allow making a library-only build for flatpak packaging.
It's not worth bundling libgnomekbd into a flatpak either so drop
the layout controller also, which isn't really useful outside of
Cinnamon desktop components anyhow.
mate-xapp-status-applet.py: Adapt to change brought by 9c4d5e92d2eb288.
Properties update asynchronously now, including the name (which is used
for sorting icons in the panel). The applet needs to update the sort
when the name changes to its final value.
There's little consistency between apps that use the StatusNotifier
interface. In many cases using qt5, code that was probably ok when
using xembed to display tray icons ends up causing trouble using
dbus with blocking and duplicate calls, and more, stranger things.
In order to interact with the client application asynchronously,
while avoiding a lot of extra complexity, use GetAll to fetch all
properties at once, and act on any changed ones.
Fix a couple of issues with the recently-added asynchronous proxy
creation as well.