diff --git a/wayland_backend.cpp b/wayland_backend.cpp
index b29fa5b8f6..ddf6e9f767 100644
--- a/wayland_backend.cpp
+++ b/wayland_backend.cpp
@@ -24,6 +24,7 @@ along with this program. If not, see .
#include "input.h"
#include "main.h"
#include "utils.h"
+#include "wayland_server.h"
#include
#include
#include
@@ -40,6 +41,7 @@ along with this program. If not, see .
#include
#include
#include
+#include
// Qt
#include
#include
@@ -256,6 +258,15 @@ WaylandSeat::WaylandSeat(wl_seat *seat, WaylandBackend *backend)
}
}
);
+ WaylandServer *server = waylandServer();
+ if (server) {
+ using namespace KWayland::Server;
+ SeatInterface *si = server->seat();
+ connect(m_seat, &Seat::hasKeyboardChanged, si, &SeatInterface::setHasKeyboard);
+ connect(m_seat, &Seat::hasPointerChanged, si, &SeatInterface::setHasPointer);
+ connect(m_seat, &Seat::hasTouchChanged, si, &SeatInterface::setHasTouch);
+ connect(m_seat, &Seat::nameChanged, si, &SeatInterface::setName);
+ }
}
WaylandSeat::~WaylandSeat()
diff --git a/wayland_server.cpp b/wayland_server.cpp
index 3fe0773890..6bb59751f3 100644
--- a/wayland_server.cpp
+++ b/wayland_server.cpp
@@ -25,6 +25,7 @@ along with this program. If not, see .
#include
#include
#include
+#include
#include
using namespace KWayland::Server;
@@ -69,6 +70,8 @@ void WaylandServer::init(const QByteArray &socketName)
m_shell = m_display->createShell(m_display);
m_shell->create();
m_display->createShm();
+ m_seat = m_display->createSeat(m_display);
+ m_seat->create();
}
void WaylandServer::initOutputs()