[mutter/wayland] wayland: fix deprecation warnings



commit 95a965541278f4d067d41dbcd6800171f43636c5
Author: Giovanni Campagna <gcampagn redhat com>
Date:   Tue Sep 10 13:03:37 2013 +0200

    wayland: fix deprecation warnings
    
    Replace the deprecated APIs with the modern variants (which
    also give us full control on the versioning).
    Also, note that we only support version 2 of wl_seat. Version
    3 is for multiple pointer/keyboards for a client, but
    we don't implement that yet. If a client requests version 3
    of wl_seat or make a version 3 request, it will get a protocol error.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=707851

 src/wayland/meta-wayland-data-device.c |   40 +++++++++++++++----------------
 src/wayland/meta-wayland-seat.c        |   24 +++++++++---------
 2 files changed, 31 insertions(+), 33 deletions(-)
---
diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c
index f578f00..c6cea03 100644
--- a/src/wayland/meta-wayland-data-device.c
+++ b/src/wayland/meta-wayland-data-device.c
@@ -109,12 +109,11 @@ meta_wayland_data_source_send_offer (MetaWaylandDataSource *source,
   offer->source = source;
   offer->source_destroy_listener.notify = destroy_offer_data_source;
 
-  offer->resource = wl_client_add_object (wl_resource_get_client (target),
-                                          &wl_data_offer_interface,
-                                          &data_offer_interface,
-                                          0,
-                                          offer);
-  wl_resource_set_destructor (offer->resource, destroy_data_offer);
+  offer->resource = wl_resource_create (wl_resource_get_client (target),
+                                       &wl_data_offer_interface,
+                                       MIN (1, wl_resource_get_version (target)), 0);
+  wl_resource_set_implementation (offer->resource, &data_offer_interface,
+                                 offer, destroy_data_offer);
   wl_resource_add_destroy_listener (source->resource,
                                     &offer->source_destroy_listener);
 
@@ -466,12 +465,10 @@ create_data_source (struct wl_client *client,
       return;
     }
 
-  source->resource = wl_client_add_object (client,
-                                           &wl_data_source_interface,
-                                           &data_source_interface,
-                                           id,
-                                           source);
-  wl_resource_set_destructor (source->resource, destroy_data_source);
+  source->resource = wl_resource_create (client, &wl_data_source_interface,
+                                        MIN (1, wl_resource_get_version (resource)), id);
+  wl_resource_set_implementation (source->resource, &data_source_interface,
+                                 source, destroy_data_source);
 
   source->accept = client_source_accept;
   source->send = client_source_send;
@@ -494,11 +491,10 @@ get_data_device (struct wl_client *client,
   MetaWaylandSeat *seat = wl_resource_get_user_data (seat_resource);
   struct wl_resource *resource;
 
-  resource = wl_client_add_object (client, &wl_data_device_interface,
-                                   &data_device_interface, id, seat);
-
+  resource = wl_resource_create (client, &wl_data_device_interface,
+                                MIN (1, wl_resource_get_version (manager_resource)), id);
+  wl_resource_set_implementation (resource, &data_device_interface, seat, unbind_data_device);
   wl_list_insert (&seat->drag_resource_list, wl_resource_get_link (resource));
-  wl_resource_set_destructor (resource, unbind_data_device);
 }
 
 static const struct wl_data_device_manager_interface manager_interface = {
@@ -510,8 +506,10 @@ static void
 bind_manager (struct wl_client *client,
               void *data, guint32 version, guint32 id)
 {
-  wl_client_add_object (client, &wl_data_device_manager_interface,
-                        &manager_interface, id, NULL);
+  struct wl_resource *resource;
+
+  resource = wl_resource_create (client, &wl_data_device_manager_interface, MIN (version, 1), id);
+  wl_resource_set_implementation (resource, &manager_interface, NULL, NULL);
 }
 
 void
@@ -540,9 +538,9 @@ meta_wayland_data_device_set_keyboard_focus (MetaWaylandSeat *seat)
 int
 meta_wayland_data_device_manager_init (struct wl_display *display)
 {
-  if (wl_display_add_global (display,
-                             &wl_data_device_manager_interface,
-                             NULL, bind_manager) == NULL)
+  if (wl_global_create (display,
+                       &wl_data_device_manager_interface, 1,
+                       NULL, bind_manager) == NULL)
     return -1;
 
   return 0;
diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c
index adf68fa..76e7522 100644
--- a/src/wayland/meta-wayland-seat.c
+++ b/src/wayland/meta-wayland-seat.c
@@ -175,10 +175,10 @@ seat_get_pointer (struct wl_client *client,
   MetaWaylandSeat *seat = wl_resource_get_user_data (resource);
   struct wl_resource *cr;
 
-  cr = wl_client_add_object (client, &wl_pointer_interface,
-                             &pointer_interface, id, seat);
+  cr = wl_resource_create (client, &wl_pointer_interface,
+                          MIN (wl_resource_get_version (resource), 2), id);
+  wl_resource_set_implementation (cr, &pointer_interface, seat, unbind_resource);
   wl_list_insert (&seat->pointer.resource_list, wl_resource_get_link (cr));
-  wl_resource_set_destructor (cr, unbind_resource);
 
   if (seat->pointer.focus &&
       wl_resource_get_client (seat->pointer.focus->resource) == client)
@@ -205,9 +205,10 @@ seat_get_keyboard (struct wl_client *client,
   MetaWaylandSeat *seat = wl_resource_get_user_data (resource);
   struct wl_resource *cr;
 
-  cr = wl_client_add_object (client, &wl_keyboard_interface, NULL, id, seat);
+  cr = wl_resource_create (client, &wl_keyboard_interface,
+                          MIN (wl_resource_get_version (resource), 2), id);
+  wl_resource_set_implementation (cr, NULL, seat, unbind_resource);
   wl_list_insert (&seat->keyboard.resource_list, wl_resource_get_link (cr));
-  wl_resource_set_destructor (cr, unbind_resource);
 
   wl_keyboard_send_keymap (cr,
                            WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1,
@@ -248,17 +249,16 @@ bind_seat (struct wl_client *client,
   MetaWaylandSeat *seat = data;
   struct wl_resource *resource;
 
-  resource = wl_client_add_object (client,
-                                   &wl_seat_interface,
-                                   &seat_interface,
-                                   id,
-                                   data);
+  resource = wl_resource_create (client, &wl_seat_interface, MIN (version, 2), id);
+  wl_resource_set_implementation (resource, &seat_interface, seat, unbind_resource);
   wl_list_insert (&seat->base_resource_list, wl_resource_get_link (resource));
-  wl_resource_set_destructor (resource, unbind_resource);
 
   wl_seat_send_capabilities (resource,
                              WL_SEAT_CAPABILITY_POINTER |
                              WL_SEAT_CAPABILITY_KEYBOARD);
+
+  if (version >= 2)
+    wl_seat_send_name (resource, "seat0");
 }
 
 static void
@@ -297,7 +297,7 @@ meta_wayland_seat_new (struct wl_display *display,
   seat->hotspot_x = 16;
   seat->hotspot_y = 16;
 
-  wl_display_add_global (display, &wl_seat_interface, seat, bind_seat);
+  wl_global_create (display, &wl_seat_interface, 2, seat, bind_seat);
 
   return seat;
 }


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