Index: ui/ozone/platform/wayland/wayland_object.cc |
diff --git a/ui/ozone/platform/wayland/wayland_object.cc b/ui/ozone/platform/wayland/wayland_object.cc |
index 6b7f1e185aef572b7fd4fe9b247a8f1e545daa05..59eb97d9472a2ed44c96b6be3d853da5e4c79ad8 100644 |
--- a/ui/ozone/platform/wayland/wayland_object.cc |
+++ b/ui/ozone/platform/wayland/wayland_object.cc |
@@ -10,6 +10,13 @@ |
namespace wl { |
namespace { |
+void delete_keyboard(wl_keyboard* keyboard) { |
+ if (wl_keyboard_get_version(keyboard) >= WL_KEYBOARD_RELEASE_SINCE_VERSION) |
+ wl_keyboard_release(keyboard); |
+ else |
+ wl_keyboard_destroy(keyboard); |
+} |
+ |
void delete_pointer(wl_pointer* pointer) { |
if (wl_pointer_get_version(pointer) >= WL_POINTER_RELEASE_SINCE_VERSION) |
wl_pointer_release(pointer); |
@@ -37,6 +44,10 @@ void (*ObjectTraits<wl_compositor>::deleter)(wl_compositor*) = |
const wl_interface* ObjectTraits<wl_display>::interface = &wl_display_interface; |
void (*ObjectTraits<wl_display>::deleter)(wl_display*) = &wl_display_disconnect; |
+const wl_interface* ObjectTraits<wl_keyboard>::interface = |
+ &wl_keyboard_interface; |
+void (*ObjectTraits<wl_keyboard>::deleter)(wl_keyboard*) = &delete_keyboard; |
+ |
const wl_interface* ObjectTraits<wl_pointer>::interface = &wl_pointer_interface; |
void (*ObjectTraits<wl_pointer>::deleter)(wl_pointer*) = &delete_pointer; |