forked from AuroraMiddleware/gtk
gdkdisplay-wayland: Add API to set startup notification ID
For wayland clients, the startup notification ID is currently only set from the DESKTOP_STARTUP_ID environment variable. As that variable is only set for clients launched via exec(), startup completion is not indicated correctly for DBus-activated applications unless an explicit ID is specified - usually that is not the case, as the default handling uses gdk_notify_startup_complete(). To address this, we need API to set the startup notification ID from GTK as we have on X11. https://bugzilla.gnome.org/show_bug.cgi?id=768531
This commit is contained in:
parent
305f473f73
commit
75ee402c6a
@ -796,6 +796,33 @@ gdk_wayland_display_get_next_serial (GdkDisplay *display)
|
||||
return ++serial;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_wayland_display_set_startup_notification_id:
|
||||
* @display: (type GdkWaylandDisplay): a #GdkDisplay
|
||||
* @startup_id: the startup notification ID (must be valid utf8)
|
||||
*
|
||||
* Sets the startup notification ID for a display.
|
||||
*
|
||||
* This is usually taken from the value of the DESKTOP_STARTUP_ID
|
||||
* environment variable, but in some cases (such as the application not
|
||||
* being launched using exec()) it can come from other sources.
|
||||
*
|
||||
* The startup ID is also what is used to signal that the startup is
|
||||
* complete (for example, when opening a window or when calling
|
||||
* gdk_notify_startup_complete()).
|
||||
*
|
||||
* Since: 3.22
|
||||
**/
|
||||
void
|
||||
gdk_wayland_display_set_startup_notification_id (GdkDisplay *display,
|
||||
const char *startup_id)
|
||||
{
|
||||
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display);
|
||||
|
||||
g_free (display_wayland->startup_notification_id);
|
||||
display_wayland->startup_notification_id = g_strdup (startup_id);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_display_notify_startup_complete (GdkDisplay *display,
|
||||
const gchar *startup_id)
|
||||
|
@ -53,6 +53,9 @@ GDK_AVAILABLE_IN_3_10
|
||||
void gdk_wayland_display_set_cursor_theme (GdkDisplay *display,
|
||||
const gchar *theme,
|
||||
gint size);
|
||||
GDK_AVAILABLE_IN_3_22
|
||||
void gdk_wayland_display_set_startup_notification_id (GdkDisplay *display,
|
||||
const char *startup_id);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user