[mutter] wayland/xdg-output: Add xdg-output v3 support



commit 13deb222232c2abffd022fc7b4406909ccbb13ac
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Thu Jul 25 14:12:46 2019 +0200

    wayland/xdg-output: Add xdg-output v3 support
    
    xdg-output v3 marks `xdg_output.done` as deprecated, avoid sending that
    event for clients using xdg-output v3.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/704

 meson.build                         | 2 +-
 src/wayland/meta-wayland-outputs.c  | 7 +++++--
 src/wayland/meta-wayland-versions.h | 2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/meson.build b/meson.build
index 3443d4d34..940e79a24 100644
--- a/meson.build
+++ b/meson.build
@@ -42,7 +42,7 @@ gudev_req = '>= 232'
 
 # wayland version requirements
 wayland_server_req = '>= 1.13.0'
-wayland_protocols_req = '>= 1.16'
+wayland_protocols_req = '>= 1.18'
 
 # native backend version requirements
 libinput_req = '>= 1.4'
diff --git a/src/wayland/meta-wayland-outputs.c b/src/wayland/meta-wayland-outputs.c
index a45bcbcd2..fdbf01688 100644
--- a/src/wayland/meta-wayland-outputs.c
+++ b/src/wayland/meta-wayland-outputs.c
@@ -35,6 +35,8 @@
 
 #include "xdg-output-unstable-v1-server-protocol.h"
 
+/* Wayland protocol headers list new additions, not deprecations */
+#define NO_XDG_OUTPUT_DONE_SINCE_VERSION 3
 
 enum
 {
@@ -382,7 +384,8 @@ wayland_output_update_for_output (MetaWaylandOutput  *wayland_output,
       for (iter = wayland_output->xdg_output_resources; iter; iter = iter->next)
         {
           struct wl_resource *xdg_output = iter->data;
-          zxdg_output_v1_send_done (xdg_output);
+          if (wl_resource_get_version (xdg_output) < NO_XDG_OUTPUT_DONE_SINCE_VERSION)
+            zxdg_output_v1_send_done (xdg_output);
         }
     }
   /* It's very important that we change the output pointer here, as
@@ -621,7 +624,7 @@ send_xdg_output_events (struct wl_resource *resource,
       zxdg_output_v1_send_description (resource, description);
     }
 
-  if (need_all_events)
+  if (need_all_events && version < NO_XDG_OUTPUT_DONE_SINCE_VERSION)
     {
       zxdg_output_v1_send_done (resource);
       need_done = FALSE;
diff --git a/src/wayland/meta-wayland-versions.h b/src/wayland/meta-wayland-versions.h
index 0e2b6414b..f5dc10484 100644
--- a/src/wayland/meta-wayland-versions.h
+++ b/src/wayland/meta-wayland-versions.h
@@ -50,7 +50,7 @@
 #define META_ZXDG_IMPORTER_V1_VERSION       1
 #define META_ZWP_LINUX_DMABUF_V1_VERSION    3
 #define META_ZWP_KEYBOARD_SHORTCUTS_INHIBIT_V1_VERSION 1
-#define META_ZXDG_OUTPUT_V1_VERSION         2
+#define META_ZXDG_OUTPUT_V1_VERSION         3
 #define META_ZWP_XWAYLAND_KEYBOARD_GRAB_V1_VERSION 1
 #define META_GTK_TEXT_INPUT_VERSION         1
 #define META_ZWP_TEXT_INPUT_V3_VERSION      1


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]