From 9f35b5816addac80bde00826460de79c3489f3ab Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Sat, 6 Feb 2016 15:04:25 +0100 Subject: [PATCH] wayland: Implement gtk-shell v3 Implement the gtk_shell.set_startup_id request, so that the ID is removed from the sequences list, and feedback updated accordingly. --- src/wayland/meta-wayland-surface.c | 17 +++++++++++++++-- src/wayland/meta-wayland-versions.h | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c index 129486c06..21dc7ce93 100644 --- a/src/wayland/meta-wayland-surface.c +++ b/src/wayland/meta-wayland-surface.c @@ -2029,8 +2029,21 @@ get_gtk_surface (struct wl_client *client, wl_resource_set_implementation (surface->gtk_surface, &meta_wayland_gtk_surface_interface, surface, gtk_surface_destructor); } +static void +set_startup_id (struct wl_client *client, + struct wl_resource *resource, + const char *startup_id) +{ + MetaDisplay *display; + + display = meta_get_display (); + meta_startup_notification_remove_sequence (display->startup_notification, + startup_id); +} + static const struct gtk_shell_interface meta_wayland_gtk_shell_interface = { - get_gtk_surface + get_gtk_surface, + set_startup_id }; static void @@ -2044,7 +2057,7 @@ bind_gtk_shell (struct wl_client *client, resource = wl_resource_create (client, >k_shell_interface, version, id); - if (version != META_GTK_SHELL_VERSION) + if (version < 2) { wl_resource_post_error (resource, WL_DISPLAY_ERROR_INVALID_OBJECT, diff --git a/src/wayland/meta-wayland-versions.h b/src/wayland/meta-wayland-versions.h index e75d98752..68135479e 100644 --- a/src/wayland/meta-wayland-versions.h +++ b/src/wayland/meta-wayland-versions.h @@ -42,7 +42,7 @@ #define META_WL_SEAT_VERSION 5 #define META_WL_OUTPUT_VERSION 2 #define META_XSERVER_VERSION 1 -#define META_GTK_SHELL_VERSION 2 +#define META_GTK_SHELL_VERSION 3 #define META_WL_SUBCOMPOSITOR_VERSION 1 #define META_ZWP_POINTER_GESTURES_V1_VERSION 1