summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2019-07-02 13:48:32 +0100
committerRan Benita <ran234@gmail.com>2019-07-02 15:48:32 +0300
commit909cc04d2c635fe5763fbde21f807ef8fc9c0515 (patch)
tree1da31e78bd01b0c4248a5fb9ba0dc8597cdc300a /test
parent06a80beed8a408eebffa2fe80854fcda38d82ee2 (diff)
downloadxorg-lib-libxkbcommon-909cc04d2c635fe5763fbde21f807ef8fc9c0515.tar.gz
interactive-wayland: Port to stable xdg-shell (#100)
xdg_shell v6 was pretty close to the finalised stable version of xdg-shell. We can now just use the stable version, which is supported everywhere (Enlightenment, KWin, Mutter, Weston, wlroots). This requires bumping the wayland-protocols dependency. Signed-off-by: Daniel Stone <daniels@collabora.com>
Diffstat (limited to 'test')
-rw-r--r--test/interactive-wayland.c57
1 files changed, 28 insertions, 29 deletions
diff --git a/test/interactive-wayland.c b/test/interactive-wayland.c
index f9bcc3d..e033728 100644
--- a/test/interactive-wayland.c
+++ b/test/interactive-wayland.c
@@ -34,21 +34,21 @@
#include "test.h"
#include <wayland-client.h>
-#include "xdg-shell-unstable-v6-client-protocol.h"
+#include "xdg-shell-client-protocol.h"
#include <wayland-util.h>
struct interactive_dpy {
struct wl_display *dpy;
struct wl_compositor *compositor;
- struct zxdg_shell_v6 *shell;
+ struct xdg_wm_base *shell;
struct wl_shm *shm;
uint32_t shm_format;
struct xkb_context *ctx;
struct wl_surface *wl_surf;
- struct zxdg_surface_v6 *xdg_surf;
- struct zxdg_toplevel_v6 *xdg_top;
+ struct xdg_surface *xdg_surf;
+ struct xdg_toplevel *xdg_top;
struct wl_list seats;
};
@@ -261,21 +261,21 @@ buffer_create(struct interactive_dpy *inter, uint32_t width, uint32_t height)
}
static void
-surface_configure(void *data, struct zxdg_surface_v6 *surface,
+surface_configure(void *data, struct xdg_surface *surface,
uint32_t serial)
{
struct interactive_dpy *inter = data;
- zxdg_surface_v6_ack_configure(inter->xdg_surf, serial);
+ xdg_surface_ack_configure(inter->xdg_surf, serial);
wl_surface_commit(inter->wl_surf);
}
-static const struct zxdg_surface_v6_listener surface_listener = {
+static const struct xdg_surface_listener surface_listener = {
surface_configure,
};
static void
-toplevel_configure(void *data, struct zxdg_toplevel_v6 *toplevel,
+toplevel_configure(void *data, struct xdg_toplevel *toplevel,
int32_t width, int32_t height, struct wl_array *states)
{
struct interactive_dpy *inter = data;
@@ -289,12 +289,12 @@ toplevel_configure(void *data, struct zxdg_toplevel_v6 *toplevel,
}
static void
-toplevel_close(void *data, struct zxdg_toplevel_v6 *toplevel)
+toplevel_close(void *data, struct xdg_toplevel *toplevel)
{
terminate = true;
}
-static const struct zxdg_toplevel_v6_listener toplevel_listener = {
+static const struct xdg_toplevel_listener toplevel_listener = {
toplevel_configure,
toplevel_close
};
@@ -302,24 +302,23 @@ static const struct zxdg_toplevel_v6_listener toplevel_listener = {
static void surface_create(struct interactive_dpy *inter)
{
inter->wl_surf = wl_compositor_create_surface(inter->compositor);
- inter->xdg_surf = zxdg_shell_v6_get_xdg_surface(inter->shell,
- inter->wl_surf);
- zxdg_surface_v6_add_listener(inter->xdg_surf, &surface_listener, inter);
- inter->xdg_top = zxdg_surface_v6_get_toplevel(inter->xdg_surf);
- zxdg_toplevel_v6_add_listener(inter->xdg_top, &toplevel_listener, inter);
- zxdg_toplevel_v6_set_title(inter->xdg_top, "xkbcommon event tester");
- zxdg_toplevel_v6_set_app_id(inter->xdg_top,
- "org.xkbcommon.test.interactive-wayland");
+ inter->xdg_surf = xdg_wm_base_get_xdg_surface(inter->shell, inter->wl_surf);
+ xdg_surface_add_listener(inter->xdg_surf, &surface_listener, inter);
+ inter->xdg_top = xdg_surface_get_toplevel(inter->xdg_surf);
+ xdg_toplevel_add_listener(inter->xdg_top, &toplevel_listener, inter);
+ xdg_toplevel_set_title(inter->xdg_top, "xkbcommon event tester");
+ xdg_toplevel_set_app_id(inter->xdg_top,
+ "org.xkbcommon.test.interactive-wayland");
wl_surface_commit(inter->wl_surf);
}
static void
-shell_ping(void *data, struct zxdg_shell_v6 *shell, uint32_t serial)
+shell_ping(void *data, struct xdg_wm_base *shell, uint32_t serial)
{
- zxdg_shell_v6_pong(shell, serial);
+ xdg_wm_base_pong(shell, serial);
}
-static const struct zxdg_shell_v6_listener shell_listener = {
+static const struct xdg_wm_base_listener shell_listener = {
shell_ping
};
@@ -433,7 +432,7 @@ pointer_button(void *data, struct wl_pointer *wl_pointer, uint32_t serial,
{
struct interactive_seat *seat = data;
- zxdg_toplevel_v6_move(seat->inter->xdg_top, seat->wl_seat, serial);
+ xdg_toplevel_move(seat->inter->xdg_top, seat->wl_seat, serial);
}
static void
@@ -584,11 +583,11 @@ registry_global(void *data, struct wl_registry *registry, uint32_t name,
if (strcmp(interface, "wl_seat") == 0) {
seat_create(inter, registry, name, version);
}
- else if (strcmp(interface, "zxdg_shell_v6") == 0) {
+ else if (strcmp(interface, "xdg_wm_base") == 0) {
inter->shell = wl_registry_bind(registry, name,
- &zxdg_shell_v6_interface,
- MAX(version, 1));
- zxdg_shell_v6_add_listener(inter->shell, &shell_listener, inter);
+ &xdg_wm_base_interface,
+ MAX(version, 2));
+ xdg_wm_base_add_listener(inter->shell, &shell_listener, inter);
}
else if (strcmp(interface, "wl_compositor") == 0) {
inter->compositor = wl_registry_bind(registry, name,
@@ -629,13 +628,13 @@ dpy_disconnect(struct interactive_dpy *inter)
seat_destroy(seat);
if (inter->xdg_surf)
- zxdg_surface_v6_destroy(inter->xdg_surf);
+ xdg_surface_destroy(inter->xdg_surf);
if (inter->xdg_top)
- zxdg_toplevel_v6_destroy(inter->xdg_top);
+ xdg_toplevel_destroy(inter->xdg_top);
if (inter->wl_surf)
wl_surface_destroy(inter->wl_surf);
if (inter->shell)
- zxdg_shell_v6_destroy(inter->shell);
+ xdg_wm_base_destroy(inter->shell);
if (inter->compositor)
wl_compositor_destroy(inter->compositor);
if (inter->shm)