application: Complete startup notification sequence for remote invocations
When a remote instance of a GTK application implementing the Startup Notification protocol gets spawned it will pass the startup sequence ID as "platform data" to the main instance. Thus, we need to make sure that the startup sequence gets completed in that case, since the remote instance won't do it by itself, since it won't map any top level window. Checking for this "platform data" in the implementation of the after_emit() virtual method in the primary instance should be a good place to do so, since the existence of such data proves that a remote instance has been spawned. https://gitlab.gnome.org/GNOME/gtk/issues/1084
This commit is contained in:

committed by
Alberts Muktupāvels

parent
d0c351468b
commit
c17c18e440
@ -376,6 +376,18 @@ static void
|
||||
gtk_application_after_emit (GApplication *application,
|
||||
GVariant *platform_data)
|
||||
{
|
||||
const char *startup_notification_id = NULL;
|
||||
|
||||
g_variant_lookup (platform_data, "desktop-startup-id", "&s", &startup_notification_id);
|
||||
if (startup_notification_id)
|
||||
{
|
||||
GdkDisplay *display;
|
||||
|
||||
display = gdk_display_get_default ();
|
||||
if (display)
|
||||
gdk_display_notify_startup_complete (display, startup_notification_id);
|
||||
}
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user