[gtk+] wayland: Only bind to supported gtk-shell versions
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] wayland: Only bind to supported gtk-shell versions
- Date: Wed, 11 Mar 2015 03:38:05 +0000 (UTC)
commit b4344861a09f7ec67fe5d302d9fdd00909daaaad
Author: Jonas Ådahl <jadahl gmail com>
Date: Fri Mar 6 10:51:47 2015 +0800
wayland: Only bind to supported gtk-shell versions
The gtk-shell Wayland protocol extension is not meant to be backward
compatible right now, so avoid binding to any version that is not the
one supported.
https://bugzilla.gnome.org/show_bug.cgi?id=745721
gdk/wayland/gdkdisplay-wayland.c | 12 +++++++++---
gdk/wayland/protocol/gtk-shell.xml | 10 +++++++++-
2 files changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/gdk/wayland/gdkdisplay-wayland.c b/gdk/wayland/gdkdisplay-wayland.c
index c542459..21369de 100644
--- a/gdk/wayland/gdkdisplay-wayland.c
+++ b/gdk/wayland/gdkdisplay-wayland.c
@@ -69,6 +69,8 @@
* ]|
*/
+#define SUPPORTED_GTK_SHELL_VERSION 1
+
static void _gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *wayland_display);
G_DEFINE_TYPE (GdkWaylandDisplay, gdk_wayland_display, GDK_TYPE_DISPLAY)
@@ -180,9 +182,13 @@ gdk_registry_handle_global (void *data,
}
else if (strcmp (interface, "gtk_shell") == 0)
{
- display_wayland->gtk_shell =
- wl_registry_bind (display_wayland->wl_registry, id, >k_shell_interface, 1);
- _gdk_wayland_screen_set_has_gtk_shell (display_wayland->screen);
+ if (version == SUPPORTED_GTK_SHELL_VERSION)
+ {
+ display_wayland->gtk_shell =
+ wl_registry_bind(display_wayland->wl_registry, id,
+ >k_shell_interface, SUPPORTED_GTK_SHELL_VERSION);
+ _gdk_wayland_screen_set_has_gtk_shell (display_wayland->screen);
+ }
}
else if (strcmp (interface, "wl_output") == 0)
{
diff --git a/gdk/wayland/protocol/gtk-shell.xml b/gdk/wayland/protocol/gtk-shell.xml
index cd66259..bed61d6 100644
--- a/gdk/wayland/protocol/gtk-shell.xml
+++ b/gdk/wayland/protocol/gtk-shell.xml
@@ -1,12 +1,20 @@
<protocol name="gtk">
<interface name="gtk_shell" version="1">
+ <description summary="gtk specific extensions">
+ gtk_shell is a protocol extension providing additional features for
+ clients implementing it. It is not backward compatible, and a client must
+ always only bind to the specific version it implements. If a client binds
+ to a version different from the version the server provides, an error will
+ be raised.
+ </description>
+
<enum name="capability">
<entry name="global_app_menu" value="1"/>
<entry name="global_menu_bar" value="2"/>
<entry name="desktop_icons" value="3"/>
</enum>
-
+
<event name="capabilities">
<arg name="capabilities" type="uint"/>
</event>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]