Merge pull request #12632 from Sunderland93/remove-xdg-shell-v6

[Wayland] Remove xdg-shell-v6 protocol
This commit is contained in:
Autechre 2021-10-07 05:10:53 +02:00 committed by GitHub
commit 3f179a5762
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 27 additions and 1259 deletions

View File

@ -1218,7 +1218,6 @@ ifeq ($(HAVE_WAYLAND), 1)
input/common/wayland_common.o \
input/drivers/wayland_input.o \
gfx/common/wayland/xdg-shell.o \
gfx/common/wayland/xdg-shell-unstable-v6.o \
gfx/common/wayland/idle-inhibit-unstable-v1.o \
gfx/common/wayland/xdg-decoration-unstable-v1.o

View File

@ -1,4 +0,0 @@
xdg shell protocol
Maintainers:
Jasper St. Pierre <jstpierre@mecheye.net>

File diff suppressed because it is too large Load Diff

View File

@ -11,7 +11,6 @@ SCANNER_VERSION=''
SHARE_DIR=''
usage="generate_wayland_protos.sh - Generates wayland protocols.
Usage: generate_wayland_protos.sh [OPTIONS]
-c, --codegen version Sets the wayland scanner compatibility version.
-h, --help Shows this message.
@ -56,15 +55,10 @@ else
CODEGEN=private-code
fi
XDG_SHELL_UNSTABLE='unstable/xdg-shell/xdg-shell-unstable-v6.xml'
XDG_SHELL='stable/xdg-shell/xdg-shell.xml'
XDG_DECORATION_UNSTABLE='unstable/xdg-decoration/xdg-decoration-unstable-v1.xml'
IDLE_INHIBIT_UNSTABLE='unstable/idle-inhibit/idle-inhibit-unstable-v1.xml'
#Generate xdg-shell_v6 header and .c files
"$WAYSCAN" client-header "$WAYLAND_PROTOS/$XDG_SHELL_UNSTABLE" ./xdg-shell-unstable-v6.h
"$WAYSCAN" $CODEGEN "$WAYLAND_PROTOS/$XDG_SHELL_UNSTABLE" ./xdg-shell-unstable-v6.c
#Generate xdg-shell header and .c files
"$WAYSCAN" client-header "$WAYLAND_PROTOS/$XDG_SHELL" ./xdg-shell.h
"$WAYSCAN" $CODEGEN "$WAYLAND_PROTOS/$XDG_SHELL" ./xdg-shell.c

View File

@ -39,9 +39,6 @@
/* Generated from idle-inhibit-unstable-v1.xml */
#include "../common/wayland/idle-inhibit-unstable-v1.h"
/* Generated from xdg-shell-unstable-v6.xml */
#include "../common/wayland/xdg-shell-unstable-v6.h"
/* Generated from xdg-shell.xml */
#include "../common/wayland/xdg-shell.h"
@ -114,23 +111,11 @@ static void handle_toplevel_config(void *data,
handle_toplevel_config_common(data, toplevel, width, height, states);
}
static void handle_zxdg_toplevel_config(
void *data, struct zxdg_toplevel_v6 *toplevel,
int32_t width, int32_t height, struct wl_array *states)
{
handle_toplevel_config_common(data, toplevel, width, height, states);
}
static const struct xdg_toplevel_listener xdg_toplevel_listener = {
handle_toplevel_config,
handle_toplevel_close,
};
static const struct zxdg_toplevel_v6_listener zxdg_toplevel_v6_listener = {
handle_zxdg_toplevel_config,
handle_zxdg_toplevel_close,
};
static void gfx_ctx_wl_get_video_size(void *data,
unsigned *width, unsigned *height)
{
@ -172,22 +157,16 @@ static void gfx_ctx_wl_destroy_resources(gfx_ctx_wayland_data_t *wl)
wl_seat_destroy(wl->seat);
if (wl->xdg_shell)
xdg_wm_base_destroy(wl->xdg_shell);
if (wl->zxdg_shell)
zxdg_shell_v6_destroy(wl->zxdg_shell);
if (wl->compositor)
wl_compositor_destroy(wl->compositor);
if (wl->registry)
wl_registry_destroy(wl->registry);
if (wl->xdg_surface)
xdg_surface_destroy(wl->xdg_surface);
if (wl->zxdg_surface)
zxdg_surface_v6_destroy(wl->zxdg_surface);
if (wl->surface)
wl_surface_destroy(wl->surface);
if (wl->xdg_toplevel)
xdg_toplevel_destroy(wl->xdg_toplevel);
if (wl->zxdg_toplevel)
zxdg_toplevel_v6_destroy(wl->zxdg_toplevel);
if (wl->idle_inhibit_manager)
zwp_idle_inhibit_manager_v1_destroy(wl->idle_inhibit_manager);
if (wl->deco)
@ -207,14 +186,12 @@ static void gfx_ctx_wl_destroy_resources(gfx_ctx_wayland_data_t *wl)
wl->win = NULL;
#endif
wl->xdg_shell = NULL;
wl->zxdg_shell = NULL;
wl->compositor = NULL;
wl->registry = NULL;
wl->input.dpy = NULL;
wl->xdg_surface = NULL;
wl->surface = NULL;
wl->xdg_toplevel = NULL;
wl->zxdg_toplevel = NULL;
wl->width = 0;
wl->height = 0;
@ -235,7 +212,7 @@ static void gfx_ctx_wl_check_window(void *data, bool *quit,
gfx_ctx_wl_get_video_size(data, &new_width, &new_height);
if ( new_width != *width * wl->last_buffer_scale ||
if ( new_width != *width * wl->last_buffer_scale ||
new_height != *height * wl->last_buffer_scale)
{
*width = new_width;
@ -271,19 +248,14 @@ static void gfx_ctx_wl_update_title(void *data)
if (wl && title[0])
{
if (wl->xdg_toplevel || wl->zxdg_toplevel)
{
if (wl->deco)
if (wl->deco)
{
zxdg_toplevel_decoration_v1_set_mode(wl->deco,
ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE);
}
}
if (wl->xdg_toplevel)
xdg_toplevel_set_title(wl->xdg_toplevel, title);
else if (wl->zxdg_toplevel)
zxdg_toplevel_v6_set_title(wl->zxdg_toplevel, title);
}
xdg_toplevel_set_title(wl->xdg_toplevel, title);
}
static bool gfx_ctx_wl_get_metrics(void *data,
@ -443,12 +415,7 @@ static void *gfx_ctx_wl_init(void *video_driver)
goto error;
}
if (!wl->xdg_shell && !!wl->zxdg_shell)
{
RARCH_LOG("[Wayland]: Using zxdg_shell_v6 interface.\n");
}
if (!wl->xdg_shell && !wl->zxdg_shell)
if (!wl->xdg_shell)
{
RARCH_ERR("[Wayland]: Failed to create shell.\n");
goto error;
@ -628,18 +595,16 @@ static bool gfx_ctx_wl_set_video_mode(void *data,
wl->win = wl_egl_window_create(wl->surface, wl->width * wl->buffer_scale, wl->height * wl->buffer_scale);
#endif
if (wl->xdg_shell)
{
wl->xdg_surface = xdg_wm_base_get_xdg_surface(wl->xdg_shell, wl->surface);
xdg_surface_add_listener(wl->xdg_surface, &xdg_surface_listener, wl);
wl->xdg_surface = xdg_wm_base_get_xdg_surface(wl->xdg_shell, wl->surface);
xdg_surface_add_listener(wl->xdg_surface, &xdg_surface_listener, wl);
wl->xdg_toplevel = xdg_surface_get_toplevel(wl->xdg_surface);
xdg_toplevel_add_listener(wl->xdg_toplevel, &xdg_toplevel_listener, wl);
wl->xdg_toplevel = xdg_surface_get_toplevel(wl->xdg_surface);
xdg_toplevel_add_listener(wl->xdg_toplevel, &xdg_toplevel_listener, wl);
xdg_toplevel_set_app_id(wl->xdg_toplevel, "retroarch");
xdg_toplevel_set_title(wl->xdg_toplevel, "RetroArch");
xdg_toplevel_set_app_id(wl->xdg_toplevel, "retroarch");
xdg_toplevel_set_title(wl->xdg_toplevel, "RetroArch");
if (wl->deco_manager)
if (wl->deco_manager)
{
wl->deco = zxdg_decoration_manager_v1_get_toplevel_decoration(
wl->deco_manager, wl->xdg_toplevel);
@ -654,35 +619,9 @@ static bool gfx_ctx_wl_set_video_mode(void *data,
wl_display_roundtrip(wl->input.dpy);
xdg_wm_base_add_listener(wl->xdg_shell, &xdg_shell_listener, NULL);
}
else if (wl->zxdg_shell)
{
wl->zxdg_surface = zxdg_shell_v6_get_xdg_surface(wl->zxdg_shell, wl->surface);
zxdg_surface_v6_add_listener(wl->zxdg_surface, &zxdg_surface_v6_listener, wl);
wl->zxdg_toplevel = zxdg_surface_v6_get_toplevel(wl->zxdg_surface);
zxdg_toplevel_v6_add_listener(wl->zxdg_toplevel, &zxdg_toplevel_v6_listener, wl);
zxdg_toplevel_v6_set_app_id(wl->zxdg_toplevel, "retroarch");
zxdg_toplevel_v6_set_title(wl->zxdg_toplevel, "RetroArch");
if (wl->deco_manager)
wl->deco = zxdg_decoration_manager_v1_get_toplevel_decoration(
wl->deco_manager, wl->xdg_toplevel);
/* Waiting for xdg_toplevel to be configured before starting to draw */
wl_surface_commit(wl->surface);
wl->configured = true;
while (wl->configured)
wl_display_dispatch(wl->input.dpy);
wl_display_roundtrip(wl->input.dpy);
zxdg_shell_v6_add_listener(wl->zxdg_shell, &zxdg_shell_v6_listener, NULL);
}
#ifdef HAVE_EGL
if (!egl_create_context(&wl->egl, (attr != egl_attribs)
if (!egl_create_context(&wl->egl, (attr != egl_attribs)
? egl_attribs : NULL))
{
egl_report_error();
@ -696,10 +635,7 @@ static bool gfx_ctx_wl_set_video_mode(void *data,
if (fullscreen)
{
if (wl->xdg_toplevel)
xdg_toplevel_set_fullscreen(wl->xdg_toplevel, NULL);
else if (wl->zxdg_toplevel)
zxdg_toplevel_v6_set_fullscreen(wl->zxdg_toplevel, NULL);
xdg_toplevel_set_fullscreen(wl->xdg_toplevel, NULL);
}
flush_wayland_fd(&wl->input);

View File

@ -36,9 +36,6 @@
/* Generated from idle-inhibit-unstable-v1.xml */
#include "../common/wayland/idle-inhibit-unstable-v1.h"
/* Generated from xdg-shell-unstable-v6.xml */
#include "../common/wayland/xdg-shell-unstable-v6.h"
/* Generated from xdg-shell.xml */
#include "../common/wayland/xdg-shell.h"
@ -98,23 +95,11 @@ static void handle_toplevel_config(void *data,
handle_toplevel_config_common(data, toplevel, width, height, states);
}
static void handle_zxdg_toplevel_config(
void *data, struct zxdg_toplevel_v6 *toplevel,
int32_t width, int32_t height, struct wl_array *states)
{
handle_toplevel_config_common(data, toplevel, width, height, states);
}
static const struct xdg_toplevel_listener xdg_toplevel_listener = {
handle_toplevel_config,
handle_toplevel_close,
};
static const struct zxdg_toplevel_v6_listener zxdg_toplevel_v6_listener = {
handle_zxdg_toplevel_config,
handle_zxdg_toplevel_close,
};
static void gfx_ctx_wl_get_video_size(void *data,
unsigned *width, unsigned *height)
{
@ -154,22 +139,16 @@ static void gfx_ctx_wl_destroy_resources(gfx_ctx_wayland_data_t *wl)
wl_seat_destroy(wl->seat);
if (wl->xdg_shell)
xdg_wm_base_destroy(wl->xdg_shell);
if (wl->zxdg_shell)
zxdg_shell_v6_destroy(wl->zxdg_shell);
if (wl->compositor)
wl_compositor_destroy(wl->compositor);
if (wl->registry)
wl_registry_destroy(wl->registry);
if (wl->xdg_surface)
xdg_surface_destroy(wl->xdg_surface);
if (wl->zxdg_surface)
zxdg_surface_v6_destroy(wl->zxdg_surface);
if (wl->surface)
wl_surface_destroy(wl->surface);
if (wl->xdg_toplevel)
xdg_toplevel_destroy(wl->xdg_toplevel);
if (wl->zxdg_toplevel)
zxdg_toplevel_v6_destroy(wl->zxdg_toplevel);
if (wl->idle_inhibit_manager)
zwp_idle_inhibit_manager_v1_destroy(wl->idle_inhibit_manager);
if (wl->deco)
@ -186,14 +165,12 @@ static void gfx_ctx_wl_destroy_resources(gfx_ctx_wayland_data_t *wl)
}
wl->xdg_shell = NULL;
wl->zxdg_shell = NULL;
wl->compositor = NULL;
wl->registry = NULL;
wl->input.dpy = NULL;
wl->xdg_surface = NULL;
wl->surface = NULL;
wl->xdg_toplevel = NULL;
wl->zxdg_toplevel = NULL;
wl->width = 0;
wl->height = 0;
@ -263,18 +240,13 @@ static void gfx_ctx_wl_update_title(void *data)
if (wl && title[0])
{
if (wl->xdg_toplevel || wl->zxdg_toplevel)
{
if (wl->deco)
if (wl->deco)
{
zxdg_toplevel_decoration_v1_set_mode(wl->deco,
ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE);
}
}
if (wl->xdg_toplevel)
xdg_toplevel_set_title(wl->xdg_toplevel, title);
else if (wl->zxdg_toplevel)
zxdg_toplevel_v6_set_title(wl->zxdg_toplevel, title);
xdg_toplevel_set_title(wl->xdg_toplevel, title);
}
}
@ -354,12 +326,7 @@ static void *gfx_ctx_wl_init(void *video_driver)
goto error;
}
if (!wl->xdg_shell && !!wl->zxdg_shell)
{
RARCH_LOG("[Wayland]: Using zxdg_shell_v6 interface.\n");
}
if (!wl->xdg_shell && !wl->zxdg_shell)
if (!wl->xdg_shell)
{
RARCH_ERR("[Wayland]: Failed to create shell.\n");
goto error;
@ -453,18 +420,16 @@ static bool gfx_ctx_wl_set_video_mode(void *data,
wl_surface_set_buffer_scale(wl->surface, wl->buffer_scale);
wl_surface_add_listener(wl->surface, &wl_surface_listener, wl);
if (wl->xdg_shell)
{
wl->xdg_surface = xdg_wm_base_get_xdg_surface(wl->xdg_shell, wl->surface);
xdg_surface_add_listener(wl->xdg_surface, &xdg_surface_listener, wl);
wl->xdg_surface = xdg_wm_base_get_xdg_surface(wl->xdg_shell, wl->surface);
xdg_surface_add_listener(wl->xdg_surface, &xdg_surface_listener, wl);
wl->xdg_toplevel = xdg_surface_get_toplevel(wl->xdg_surface);
xdg_toplevel_add_listener(wl->xdg_toplevel, &xdg_toplevel_listener, wl);
wl->xdg_toplevel = xdg_surface_get_toplevel(wl->xdg_surface);
xdg_toplevel_add_listener(wl->xdg_toplevel, &xdg_toplevel_listener, wl);
xdg_toplevel_set_app_id(wl->xdg_toplevel, "retroarch");
xdg_toplevel_set_title(wl->xdg_toplevel, "RetroArch");
xdg_toplevel_set_app_id(wl->xdg_toplevel, "retroarch");
xdg_toplevel_set_title(wl->xdg_toplevel, "RetroArch");
if (wl->deco_manager)
if (wl->deco_manager)
{
wl->deco = zxdg_decoration_manager_v1_get_toplevel_decoration(
wl->deco_manager, wl->xdg_toplevel);
@ -479,39 +444,10 @@ static bool gfx_ctx_wl_set_video_mode(void *data,
wl_display_roundtrip(wl->input.dpy);
xdg_wm_base_add_listener(wl->xdg_shell, &xdg_shell_listener, NULL);
}
else if (wl->zxdg_shell)
{
wl->zxdg_surface = zxdg_shell_v6_get_xdg_surface(wl->zxdg_shell, wl->surface);
zxdg_surface_v6_add_listener(wl->zxdg_surface, &zxdg_surface_v6_listener, wl);
wl->zxdg_toplevel = zxdg_surface_v6_get_toplevel(wl->zxdg_surface);
zxdg_toplevel_v6_add_listener(wl->zxdg_toplevel, &zxdg_toplevel_v6_listener, wl);
zxdg_toplevel_v6_set_app_id(wl->zxdg_toplevel, "retroarch");
zxdg_toplevel_v6_set_title(wl->zxdg_toplevel, "RetroArch");
if (wl->deco_manager)
wl->deco = zxdg_decoration_manager_v1_get_toplevel_decoration(
wl->deco_manager, wl->xdg_toplevel);
/* Waiting for xdg_toplevel to be configured before starting to draw */
wl_surface_commit(wl->surface);
wl->configured = true;
while (wl->configured)
wl_display_dispatch(wl->input.dpy);
wl_display_roundtrip(wl->input.dpy);
zxdg_shell_v6_add_listener(wl->zxdg_shell, &zxdg_shell_v6_listener, NULL);
}
if (fullscreen)
{
if (wl->xdg_toplevel)
xdg_toplevel_set_fullscreen(wl->xdg_toplevel, NULL);
else if (wl->zxdg_toplevel)
zxdg_toplevel_v6_set_fullscreen(wl->zxdg_toplevel, NULL);
xdg_toplevel_set_fullscreen(wl->xdg_toplevel, NULL);
}
flush_wayland_fd(&wl->input);

View File

@ -208,10 +208,7 @@ static void pointer_handle_button(void *data,
if (BIT_GET(wl->input.key_state, KEY_LEFTALT))
{
if (wl->xdg_toplevel)
xdg_toplevel_move(wl->xdg_toplevel, wl->seat, serial);
else if (wl->zxdg_toplevel)
zxdg_toplevel_v6_move(wl->zxdg_toplevel, wl->seat, serial);
xdg_toplevel_move(wl->xdg_toplevel, wl->seat, serial);
}
break;
case BTN_RIGHT:
@ -245,8 +242,6 @@ static void pointer_handle_axis(void *data,
uint32_t axis,
wl_fixed_t value) { }
/* TODO: implement check for resize */
static void touch_handle_down(void *data,
struct wl_touch *wl_touch,
uint32_t serial,
@ -457,19 +452,6 @@ static void handle_surface_config(void *data, struct xdg_surface *surface,
xdg_surface_ack_configure(surface, serial);
}
static void zxdg_shell_ping(void *data,
struct zxdg_shell_v6 *shell, uint32_t serial)
{
zxdg_shell_v6_pong(shell, serial);
}
static void handle_zxdg_surface_config(void *data,
struct zxdg_surface_v6 *surface,
uint32_t serial)
{
zxdg_surface_v6_ack_configure(surface, serial);
}
void handle_toplevel_close(void *data,
struct xdg_toplevel *xdg_toplevel)
{
@ -477,13 +459,6 @@ void handle_toplevel_close(void *data,
BIT_SET(wl->input.key_state, KEY_ESC);
}
void handle_zxdg_toplevel_close(void *data,
struct zxdg_toplevel_v6 *zxdg_toplevel)
{
gfx_ctx_wayland_data_t *wl = (gfx_ctx_wayland_data_t*)data;
BIT_SET(wl->input.key_state, KEY_ESC);
}
static void display_handle_geometry(void *data,
struct wl_output *output,
int x, int y,
@ -549,9 +524,6 @@ static void registry_handle_global(void *data, struct wl_registry *reg,
else if (string_is_equal(interface, "xdg_wm_base"))
wl->xdg_shell = (struct xdg_wm_base*)
wl_registry_bind(reg, id, &xdg_wm_base_interface, 1);
else if (string_is_equal(interface, "zxdg_shell_v6"))
wl->zxdg_shell = (struct zxdg_shell_v6*)
wl_registry_bind(reg, id, &zxdg_shell_v6_interface, 1);
else if (string_is_equal(interface, "wl_shm"))
wl->shm = (struct wl_shm*)wl_registry_bind(reg, id, &wl_shm_interface, 1);
else if (string_is_equal(interface, "wl_seat"))
@ -597,14 +569,6 @@ const struct wl_output_listener output_listener = {
display_handle_scale,
};
const struct zxdg_shell_v6_listener zxdg_shell_v6_listener = {
zxdg_shell_ping,
};
const struct zxdg_surface_v6_listener zxdg_surface_v6_listener = {
handle_zxdg_surface_config,
};
const struct xdg_wm_base_listener xdg_shell_listener = {
xdg_shell_ping,
};

View File

@ -36,9 +36,6 @@
/* Generated from idle-inhibit-unstable-v1.xml */
#include "../../gfx/common/wayland/idle-inhibit-unstable-v1.h"
/* Generated from xdg-shell-unstable-v6.xml */
#include "../../gfx/common/wayland/xdg-shell-unstable-v6.h"
/* Generated from xdg-shell.xml */
#include "../../gfx/common/wayland/xdg-shell.h"
@ -120,9 +117,6 @@ typedef struct gfx_ctx_wayland_data
struct wl_registry *registry;
struct wl_compositor *compositor;
struct wl_surface *surface;
struct zxdg_surface_v6 *zxdg_surface;
struct zxdg_shell_v6 *zxdg_shell;
struct zxdg_toplevel_v6 *zxdg_toplevel;
struct xdg_surface *xdg_surface;
struct xdg_wm_base *xdg_shell;
struct xdg_toplevel *xdg_toplevel;
@ -183,9 +177,6 @@ void gfx_ctx_wl_show_mouse(void *data, bool state);
void handle_toplevel_close(void *data,
struct xdg_toplevel *xdg_toplevel);
void handle_zxdg_toplevel_close(void *data,
struct zxdg_toplevel_v6 *zxdg_toplevel);
void flush_wayland_fd(void *data);
extern const struct wl_keyboard_listener keyboard_listener;
@ -202,10 +193,6 @@ extern const struct xdg_wm_base_listener xdg_shell_listener;
extern const struct xdg_surface_listener xdg_surface_listener;
extern const struct zxdg_shell_v6_listener zxdg_shell_v6_listener;
extern const struct zxdg_surface_v6_listener zxdg_surface_v6_listener;
extern const struct wl_output_listener output_listener;
extern const struct wl_registry_listener registry_listener;