forked from AuroraMiddleware/gtk
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:
parent
479c341545
commit
07d6c53346
@ -363,6 +363,17 @@ static void
|
|||||||
gtk_application_after_emit (GApplication *application,
|
gtk_application_after_emit (GApplication *application,
|
||||||
GVariant *platform_data)
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user