diff --git a/src/wayland/CMakeLists.txt b/src/wayland/CMakeLists.txt
index 5a2e2ca614..d95bf7391f 100644
--- a/src/wayland/CMakeLists.txt
+++ b/src/wayland/CMakeLists.txt
@@ -53,8 +53,10 @@ set(SERVER_LIB_SRCS
xdgshell_v5_interface.cpp
xdgforeign_v2_interface.cpp
xdgforeign_interface.cpp
+ xdgshell_v5_interface.cpp
xdgshell_v6_interface.cpp
xdgoutput_interface.cpp
+ ../compat/wayland-xdg-shell-v5-protocol.c
)
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
@@ -221,8 +223,6 @@ set(SERVER_GENERATED_SRCS
${CMAKE_CURRENT_BINARY_DIR}/wayland-text-server-protocol.h
${CMAKE_CURRENT_BINARY_DIR}/wayland-text-input-unstable-v2-client-protocol.h
${CMAKE_CURRENT_BINARY_DIR}/wayland-text-input-unstable-v2-server-protocol.h
- ${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-shell-v5-client-protocol.h
- ${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-shell-v5-server-protocol.h
${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-shell-v6-client-protocol.h
${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-shell-v6-server-protocol.h
${CMAKE_CURRENT_BINARY_DIR}/wayland-pointer-gestures-unstable-v1-client-protocol.h
diff --git a/src/wayland/server/xdgshell_v5_interface.cpp b/src/wayland/server/xdgshell_v5_interface.cpp
index 5d2089b9ed..6d574b89bc 100644
--- a/src/wayland/server/xdgshell_v5_interface.cpp
+++ b/src/wayland/server/xdgshell_v5_interface.cpp
@@ -27,7 +27,7 @@ License along with this library. If not, see .
#include "seat_interface.h"
#include "surface_interface.h"
-#include
+#include "../compat/wayland-xdg-shell-v5-server-protocol.h"
namespace KWayland
{
@@ -61,7 +61,7 @@ private:
static void pongCallback(wl_client *client, wl_resource *resource, uint32_t serial);
XdgShellV5Interface *q;
- static const struct xdg_shell_interface s_interface;
+ static const struct zxdg_shell_v5_interface s_interface;
static const quint32 s_version;
};
@@ -79,13 +79,13 @@ public:
private:
- static const struct xdg_popup_interface s_interface;
+ static const struct zxdg_popup_v5_interface s_interface;
};
const quint32 XdgShellV5Interface::Private::s_version = 1;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
-const struct xdg_shell_interface XdgShellV5Interface::Private::s_interface = {
+const struct zxdg_shell_v5_interface XdgShellV5Interface::Private::s_interface = {
destroyCallback,
useUnstableVersionCallback,
getXdgSurfaceCallback,
@@ -123,7 +123,7 @@ void XdgShellV5Interface::Private::createSurface(wl_client *client, uint32_t ver
}
);
if (it != surfaces.constEnd()) {
- wl_resource_post_error(surface->resource(), XDG_SHELL_ERROR_ROLE, "ShellSurface already created");
+ wl_resource_post_error(surface->resource(), ZXDG_SHELL_V5_ERROR_ROLE, "ShellSurface already created");
return;
}
XdgSurfaceV5Interface *shellSurface = new XdgSurfaceV5Interface(q, surface, parentResource);
@@ -175,7 +175,7 @@ void XdgShellV5Interface::Private::pongCallback(wl_client *client, wl_resource *
}
XdgShellV5Interface::Private::Private(XdgShellV5Interface *q, Display *d)
- : XdgShellInterface::Private(XdgShellInterfaceVersion::UnstableV5, q, d, &xdg_shell_interface, s_version)
+ : XdgShellInterface::Private(XdgShellInterfaceVersion::UnstableV5, q, d, &zxdg_shell_v5_interface, s_version)
, q(q)
{
}
@@ -183,7 +183,7 @@ XdgShellV5Interface::Private::Private(XdgShellV5Interface *q, Display *d)
void XdgShellV5Interface::Private::bind(wl_client *client, uint32_t version, uint32_t id)
{
auto c = display->getConnection(client);
- auto resource = c->createResource(&xdg_shell_interface, qMin(version, s_version), id);
+ auto resource = c->createResource(&zxdg_shell_v5_interface, qMin(version, s_version), id);
if (!resource) {
wl_client_post_no_memory(client);
return;
@@ -226,7 +226,7 @@ quint32 XdgShellV5Interface::Private::ping(XdgShellSurfaceInterface * surface)
return 0;
}
const quint32 pingSerial = display->nextSerial();
- xdg_shell_send_ping(clientXdgShellResource, pingSerial);
+ zxdg_shell_v5_send_ping(clientXdgShellResource, pingSerial);
setupTimer(pingSerial);
return pingSerial;
@@ -261,40 +261,40 @@ private:
static void unsetFullscreenCallback(wl_client *client, wl_resource *resource);
static void setMinimizedCallback(wl_client *client, wl_resource *resource);
- static const struct xdg_surface_interface s_interface;
+ static const struct zxdg_surface_v5_interface s_interface;
};
namespace {
template <>
-Qt::Edges edgesToQtEdges(xdg_surface_resize_edge edges)
+Qt::Edges edgesToQtEdges(zxdg_surface_v5_resize_edge edges)
{
Qt::Edges qtEdges;
switch (edges) {
- case XDG_SURFACE_RESIZE_EDGE_TOP:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_TOP:
qtEdges = Qt::TopEdge;
break;
- case XDG_SURFACE_RESIZE_EDGE_BOTTOM:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_BOTTOM:
qtEdges = Qt::BottomEdge;
break;
- case XDG_SURFACE_RESIZE_EDGE_LEFT:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_LEFT:
qtEdges = Qt::LeftEdge;
break;
- case XDG_SURFACE_RESIZE_EDGE_TOP_LEFT:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_TOP_LEFT:
qtEdges = Qt::TopEdge | Qt::LeftEdge;
break;
- case XDG_SURFACE_RESIZE_EDGE_BOTTOM_LEFT:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_BOTTOM_LEFT:
qtEdges = Qt::BottomEdge | Qt::LeftEdge;
break;
- case XDG_SURFACE_RESIZE_EDGE_RIGHT:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_RIGHT:
qtEdges = Qt::RightEdge;
break;
- case XDG_SURFACE_RESIZE_EDGE_TOP_RIGHT:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_TOP_RIGHT:
qtEdges = Qt::TopEdge | Qt::RightEdge;
break;
- case XDG_SURFACE_RESIZE_EDGE_BOTTOM_RIGHT:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_BOTTOM_RIGHT:
qtEdges = Qt::BottomEdge | Qt::RightEdge;
break;
- case XDG_SURFACE_RESIZE_EDGE_NONE:
+ case ZXDG_SURFACE_V5_RESIZE_EDGE_NONE:
break;
default:
Q_UNREACHABLE();
@@ -305,14 +305,14 @@ Qt::Edges edgesToQtEdges(xdg_surface_resize_edge edges)
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
-const struct xdg_surface_interface XdgSurfaceV5Interface::Private::s_interface = {
+const struct zxdg_surface_v5_interface XdgSurfaceV5Interface::Private::s_interface = {
resourceDestroyedCallback,
setParentCallback,
setTitleCallback,
setAppIdCallback,
showWindowMenuCallback,
moveCallback,
- resizeCallback,
+ resizeCallback,
ackConfigureCallback,
setWindowGeometryCallback,
setMaximizedCallback,
@@ -409,7 +409,7 @@ void XdgSurfaceV5Interface::Private::setMinimizedCallback(wl_client *client, wl_
}
XdgSurfaceV5Interface::Private::Private(XdgSurfaceV5Interface *q, XdgShellV5Interface *c, SurfaceInterface *surface, wl_resource *parentResource)
- : XdgShellSurfaceInterface::Private(XdgShellInterfaceVersion::UnstableV5, q, c, surface, parentResource, &xdg_surface_interface, &s_interface)
+ : XdgShellSurfaceInterface::Private(XdgShellInterfaceVersion::UnstableV5, q, c, surface, parentResource, &zxdg_surface_v5_interface, &s_interface)
{
}
@@ -417,7 +417,7 @@ XdgSurfaceV5Interface::Private::~Private() = default;
void XdgSurfaceV5Interface::Private::close()
{
- xdg_surface_send_close(resource);
+ zxdg_surface_v5_send_close(resource);
client->flush();
}
@@ -431,22 +431,22 @@ quint32 XdgSurfaceV5Interface::Private::configure(States states, const QSize &si
wl_array_init(&state);
if (states.testFlag(State::Maximized)) {
uint32_t *s = reinterpret_cast(wl_array_add(&state, sizeof(uint32_t)));
- *s = XDG_SURFACE_STATE_MAXIMIZED;
+ *s = ZXDG_SURFACE_V5_STATE_MAXIMIZED;
}
if (states.testFlag(State::Fullscreen)) {
uint32_t *s = reinterpret_cast(wl_array_add(&state, sizeof(uint32_t)));
- *s = XDG_SURFACE_STATE_FULLSCREEN;
+ *s = ZXDG_SURFACE_V5_STATE_FULLSCREEN;
}
if (states.testFlag(State::Resizing)) {
uint32_t *s = reinterpret_cast(wl_array_add(&state, sizeof(uint32_t)));
- *s = XDG_SURFACE_STATE_RESIZING;
+ *s = ZXDG_SURFACE_V5_STATE_RESIZING;
}
if (states.testFlag(State::Activated)) {
uint32_t *s = reinterpret_cast(wl_array_add(&state, sizeof(uint32_t)));
- *s = XDG_SURFACE_STATE_ACTIVATED;
+ *s = ZXDG_SURFACE_V5_STATE_ACTIVATED;
}
configureSerials << serial;
- xdg_surface_send_configure(resource, size.width(), size.height(), &state, serial);
+ zxdg_surface_v5_send_configure(resource, size.width(), size.height(), &state, serial);
client->flush();
wl_array_release(&state);
@@ -454,13 +454,13 @@ quint32 XdgSurfaceV5Interface::Private::configure(States states, const QSize &si
}
#ifndef DOXYGEN_SHOULD_SKIP_THIS
-const struct xdg_popup_interface XdgPopupV5Interface::Private::s_interface = {
+const struct zxdg_popup_v5_interface XdgPopupV5Interface::Private::s_interface = {
resourceDestroyedCallback
};
#endif
XdgPopupV5Interface::Private::Private(XdgPopupV5Interface *q, XdgShellV5Interface *c, SurfaceInterface *surface, wl_resource *parentResource)
- : XdgShellPopupInterface::Private(XdgShellInterfaceVersion::UnstableV5, q, c, surface, parentResource, &xdg_popup_interface, &s_interface)
+ : XdgShellPopupInterface::Private(XdgShellInterfaceVersion::UnstableV5, q, c, surface, parentResource, &zxdg_popup_v5_interface, &s_interface)
{
}
@@ -473,7 +473,7 @@ void XdgPopupV5Interface::Private::popupDone()
return;
}
// TODO: dismiss all child popups
- xdg_popup_send_popup_done(resource);
+ zxdg_popup_v5_send_popup_done(resource);
client->flush();
}