BACKEND_FLAGS: "-Dx11-backend=true -Dwayland-backend=true -Dbroadway-backend=true"
FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled"
MESON_TEST_TIMEOUT_MULTIPLIER: 3
- FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v35"
+ FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v36"
FLATPAK_IMAGE: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master"
.only-default:
- meson compile -C _build
- meson install -C _build
- PKG_CONFIG_PATH=${CI_PROJECT_DIR}/_install/lib64/pkgconfig:${CI_PROJECT_DIR}/_install/share/pkgconfig meson setup _build_hello examples/hello
- - meson compile -C _build_hello
+ - LD_LIBRARY_PATH=${CI_PROJECT_DIR}/_install/lib64 meson compile -C _build_hello
- .gitlab-ci/run-tests.sh _build x11
- .gitlab-ci/run-tests.sh _build wayland
- .gitlab-ci/run-tests.sh _build waylandgles
weston-libs \
which \
xorg-x11-server-Xvfb \
+ && dnf install -y 'dnf-command(builddep)' \
+ && dnf builddep -y wayland \
&& dnf clean all
# Enable sudo for wheel users
GdkWaylandCairoContext *self = GDK_WAYLAND_CAIRO_CONTEXT (draw_context);
GdkSurface *surface = gdk_draw_context_get_surface (draw_context);
- gdk_wayland_surface_attach_image (surface, self->paint_surface, painted);
gdk_wayland_surface_sync (surface);
+ gdk_wayland_surface_attach_image (surface, self->paint_surface, painted);
gdk_wayland_surface_request_frame (surface);
gdk_profiler_add_mark (GDK_PROFILER_CURRENT_TIME, 0, "wayland", "surface commit");
if (strcmp (interface, "wl_compositor") == 0)
{
display_wayland->compositor =
- wl_registry_bind (display_wayland->wl_registry, id, &wl_compositor_interface, MIN (version, 4));
+ wl_registry_bind (display_wayland->wl_registry, id,
+ &wl_compositor_interface, MIN (version, 5));
display_wayland->compositor_version = MIN (version, 4);
}
else if (strcmp (interface, "wl_shm") == 0)
}
}
+static void
+gdk_wayland_surface_sync_offset (GdkSurface *surface)
+{
+ GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface);
+
+ if (wl_surface_get_version (impl->display_server.wl_surface) <
+ WL_SURFACE_OFFSET_SINCE_VERSION)
+ return;
+
+ if (impl->pending_buffer_offset_x == 0 &&
+ impl->pending_buffer_offset_y == 0)
+ return;
+
+ wl_surface_offset (impl->display_server.wl_surface,
+ impl->pending_buffer_offset_x,
+ impl->pending_buffer_offset_y);
+ impl->pending_buffer_offset_x = 0;
+ impl->pending_buffer_offset_y = 0;
+}
+
void
gdk_wayland_surface_sync (GdkSurface *surface)
{
gdk_wayland_surface_sync_shadow (surface);
gdk_wayland_surface_sync_opaque_region (surface);
gdk_wayland_surface_sync_input_region (surface);
+ gdk_wayland_surface_sync_offset (surface);
}
static gboolean
gdk_pixbuf_req = '>= 2.30.0'
introspection_req = '>= 1.39.0'
wayland_proto_req = '>= 1.21'
-wayland_req = '>= 1.16.91'
+wayland_req = '>= 1.20.0'
graphene_req = '>= 1.9.1'
epoxy_req = '>= 1.4'
cloudproviders_req = '>= 0.3.1'
wayland_pkgs = []
if wayland_enabled
- wlclientdep = dependency('wayland-client', version: wayland_req)
+ wlclientdep = dependency('wayland-client', version: wayland_req,
+ fallback: 'wayland',
+ default_options: ['documentation=false'])
wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req, required: false)
- wlegldep = dependency('wayland-egl')
+ wlegldep = dependency('wayland-egl',
+ fallback: 'wayland')
if not wlprotocolsdep.found()
wlproto_dir = subproject('wayland-protocols').get_variable('wayland_protocols_srcdir')
--- /dev/null
+[wrap-git]
+directory=wayland
+url=https://gitlab.freedesktop.org/wayland/wayland.git
+revision=main
+depth=1
+
+[provide]
+dependency_names = wayland-client, wayland-egl