You don't get a callback when the user clicks the application name any more. Instead, the app is launched again through its desktop file. This means that all applications that support the messaging menu must be single instance (which liferea is). Thus, on_indicator_server_clicked can be removed.
I recommend against hooking on_indicator_clicked up to the detailed signals only to pass the node as user data (if you're doing it like that, you would also need to disconnect the signals in the handler). Instead, hook the function up once, and lookup the node through its id in on_indicator_clicked.
The arguments to on_indicator_clicked are wrong, they should be
It is roughly correct, but only very roughly ;)
You don't get a callback when the user clicks the application name any more. Instead, the app is launched again through its desktop file. This means that all applications that support the messaging menu must be single instance (which liferea is). Thus, on_indicator_ server_ clicked can be removed.
I recommend against hooking on_indicator_ clicked up to the detailed signals only to pass the node as user data (if you're doing it like that, you would also need to disconnect the signals in the handler). Instead, hook the function up once, and lookup the node through its id in on_indicator_ clicked.
The arguments to on_indicator_ clicked are wrong, they should be
static void clicked (MessagingMenuApp *mmapp, const gchar *source_id, gpointer user_data)
on_indicator_
What did you intend to do here:
messaging_ menu_app_ remove_ source (indicator_ priv->server, (char *)(indicator));
Casting the MessagingMenuApp pointer to a string?! You probably want 'source_id' in there.