else if (strcmp (interface, "wl_output") == 0)
{
output =
- wl_registry_bind (display_wayland->wl_registry, id, &wl_output_interface, MIN (version, 2));
- gdk_wayland_display_add_output (display_wayland, id, output, MIN (version, 2));
+ wl_registry_bind (display_wayland->wl_registry, id, &wl_output_interface, MIN (version, 3));
+ gdk_wayland_display_add_output (display_wayland, id, output, MIN (version, 3));
_gdk_wayland_display_async_roundtrip (display_wayland);
}
else if (strcmp (interface, "wl_seat") == 0)
g_free (monitor->name);
g_clear_pointer (&monitor->xdg_output, zxdg_output_v1_destroy);
- g_clear_pointer (&monitor->output, wl_output_destroy);
+
+ if (wl_output_get_version (monitor->output) >= WL_OUTPUT_RELEASE_SINCE_VERSION)
+ g_clear_pointer (&monitor->output, wl_output_release);
+ else
+ g_clear_pointer (&monitor->output, wl_output_destroy);
G_OBJECT_CLASS (gdk_wayland_monitor_parent_class)->finalize (object);
}