summaryrefslogtreecommitdiff
path: root/src/xwayland/Server.cpp
diff options
context:
space:
mode:
authordavc0n <dconti.dev@gmail.com>2025-05-07 15:21:44 +0200
committerGitHub <noreply@github.com>2025-05-07 15:21:44 +0200
commite5df8cdc6227e35fa225acd15cdcc75abe3347cb (patch)
tree8f2dfecfe5bda7188240fc2676c559ec75beb307 /src/xwayland/Server.cpp
parentf8bbe5124c0012865ea36f52d304313084a31fe9 (diff)
xwayland: refactor class member vars (#10312)
* xwayland: refactor class member vars * xwayland: fix pure wayland build
Diffstat (limited to 'src/xwayland/Server.cpp')
-rw-r--r--src/xwayland/Server.cpp86
1 files changed, 43 insertions, 43 deletions
diff --git a/src/xwayland/Server.cpp b/src/xwayland/Server.cpp
index a2e0e9fa..814bd20c 100644
--- a/src/xwayland/Server.cpp
+++ b/src/xwayland/Server.cpp
@@ -172,12 +172,12 @@ static bool openSockets(std::array<CFileDescriptor, 2>& sockets, int display) {
}
static void startServer(void* data) {
- if (!g_pXWayland->pServer->start())
+ if (!g_pXWayland->m_server->start())
Debug::log(ERR, "The XWayland server could not start! XWayland will not work...");
}
static int xwaylandReady(int fd, uint32_t mask, void* data) {
- return g_pXWayland->pServer->ready(fd, mask);
+ return g_pXWayland->m_server->ready(fd, mask);
}
static bool safeRemove(const std::string& path) {
@@ -194,7 +194,7 @@ bool CXWaylandServer::tryOpenSockets() {
CFileDescriptor fd{open(lockPath.c_str(), O_WRONLY | O_CREAT | O_EXCL | O_CLOEXEC, LOCK_FILE_MODE)};
if (fd.isValid()) {
// we managed to open the lock
- if (!openSockets(xFDs, i)) {
+ if (!openSockets(m_xFDs, i)) {
safeRemove(lockPath);
continue;
}
@@ -205,8 +205,8 @@ bool CXWaylandServer::tryOpenSockets() {
continue;
}
- display = i;
- displayName = std::format(":{}", display);
+ m_display = i;
+ m_displayName = std::format(":{}", m_display);
break;
}
@@ -230,12 +230,12 @@ bool CXWaylandServer::tryOpenSockets() {
}
}
- if (display < 0) {
+ if (m_display < 0) {
Debug::log(ERR, "Failed to find a suitable socket for XWayland");
return false;
}
- Debug::log(LOG, "XWayland found a suitable display socket at DISPLAY: {}", displayName);
+ Debug::log(LOG, "XWayland found a suitable display socket at DISPLAY: {}", m_displayName);
return true;
}
@@ -245,63 +245,63 @@ CXWaylandServer::CXWaylandServer() {
CXWaylandServer::~CXWaylandServer() {
die();
- if (display < 0)
+ if (m_display < 0)
return;
- std::string lockPath = std::format("/tmp/.X{}-lock", display);
+ std::string lockPath = std::format("/tmp/.X{}-lock", m_display);
safeRemove(lockPath);
std::string path;
for (bool isLinux : {true, false}) {
- path = getSocketPath(display, isLinux);
+ path = getSocketPath(m_display, isLinux);
safeRemove(path);
}
}
void CXWaylandServer::die() {
- if (display < 0)
+ if (m_display < 0)
return;
- if (xFDReadEvents[0]) {
- wl_event_source_remove(xFDReadEvents[0]);
- wl_event_source_remove(xFDReadEvents[1]);
- xFDReadEvents = {nullptr, nullptr};
+ if (m_xFDReadEvents[0]) {
+ wl_event_source_remove(m_xFDReadEvents[0]);
+ wl_event_source_remove(m_xFDReadEvents[1]);
+ m_xFDReadEvents = {nullptr, nullptr};
}
- if (pipeSource)
- wl_event_source_remove(pipeSource);
+ if (m_pipeSource)
+ wl_event_source_remove(m_pipeSource);
// possible crash. Better to leak a bit.
//if (xwaylandClient)
// wl_client_destroy(xwaylandClient);
- xwaylandClient = nullptr;
+ m_xwaylandClient = nullptr;
}
bool CXWaylandServer::create() {
if (!tryOpenSockets())
return false;
- setenv("DISPLAY", displayName.c_str(), true);
+ setenv("DISPLAY", m_displayName.c_str(), true);
// TODO: lazy mode
- idleSource = wl_event_loop_add_idle(g_pCompositor->m_wlEventLoop, ::startServer, nullptr);
+ m_idleSource = wl_event_loop_add_idle(g_pCompositor->m_wlEventLoop, ::startServer, nullptr);
return true;
}
void CXWaylandServer::runXWayland(CFileDescriptor& notifyFD) {
- if (!xFDs[0].setFlags(xFDs[0].getFlags() & ~FD_CLOEXEC) || !xFDs[1].setFlags(xFDs[1].getFlags() & ~FD_CLOEXEC) ||
- !waylandFDs[1].setFlags(waylandFDs[1].getFlags() & ~FD_CLOEXEC) || !xwmFDs[1].setFlags(xwmFDs[1].getFlags() & ~FD_CLOEXEC)) {
+ if (!m_xFDs[0].setFlags(m_xFDs[0].getFlags() & ~FD_CLOEXEC) || !m_xFDs[1].setFlags(m_xFDs[1].getFlags() & ~FD_CLOEXEC) ||
+ !m_waylandFDs[1].setFlags(m_waylandFDs[1].getFlags() & ~FD_CLOEXEC) || !m_xwmFDs[1].setFlags(m_xwmFDs[1].getFlags() & ~FD_CLOEXEC)) {
Debug::log(ERR, "Failed to unset cloexec on fds");
_exit(EXIT_FAILURE);
}
- auto cmd =
- std::format("Xwayland {} -rootless -core -listenfd {} -listenfd {} -displayfd {} -wm {}", displayName, xFDs[0].get(), xFDs[1].get(), notifyFD.get(), xwmFDs[1].get());
+ auto cmd = std::format("Xwayland {} -rootless -core -listenfd {} -listenfd {} -displayfd {} -wm {}", m_displayName, m_xFDs[0].get(), m_xFDs[1].get(), notifyFD.get(),
+ m_xwmFDs[1].get());
- auto waylandSocket = std::format("{}", waylandFDs[1].get());
+ auto waylandSocket = std::format("{}", m_waylandFDs[1].get());
setenv("WAYLAND_SOCKET", waylandSocket.c_str(), true);
Debug::log(LOG, "Starting XWayland with \"{}\", bon voyage!", cmd);
@@ -313,17 +313,17 @@ void CXWaylandServer::runXWayland(CFileDescriptor& notifyFD) {
}
bool CXWaylandServer::start() {
- idleSource = nullptr;
+ m_idleSource = nullptr;
int wlPair[2] = {-1, -1};
if (socketpair(AF_UNIX, SOCK_STREAM, 0, wlPair) != 0) {
Debug::log(ERR, "socketpair failed (1)");
die();
return false;
}
- waylandFDs[0] = CFileDescriptor{wlPair[0]};
- waylandFDs[1] = CFileDescriptor{wlPair[1]};
+ m_waylandFDs[0] = CFileDescriptor{wlPair[0]};
+ m_waylandFDs[1] = CFileDescriptor{wlPair[1]};
- if (!waylandFDs[0].setFlags(waylandFDs[0].getFlags() | FD_CLOEXEC) || !waylandFDs[1].setFlags(waylandFDs[1].getFlags() | FD_CLOEXEC)) {
+ if (!m_waylandFDs[0].setFlags(m_waylandFDs[0].getFlags() | FD_CLOEXEC) || !m_waylandFDs[1].setFlags(m_waylandFDs[1].getFlags() | FD_CLOEXEC)) {
Debug::log(ERR, "set_cloexec failed (1)");
die();
return false;
@@ -336,23 +336,23 @@ bool CXWaylandServer::start() {
return false;
}
- xwmFDs[0] = CFileDescriptor{xwmPair[0]};
- xwmFDs[1] = CFileDescriptor{xwmPair[1]};
+ m_xwmFDs[0] = CFileDescriptor{xwmPair[0]};
+ m_xwmFDs[1] = CFileDescriptor{xwmPair[1]};
- if (!xwmFDs[0].setFlags(xwmFDs[0].getFlags() | FD_CLOEXEC) || !xwmFDs[1].setFlags(xwmFDs[1].getFlags() | FD_CLOEXEC)) {
+ if (!m_xwmFDs[0].setFlags(m_xwmFDs[0].getFlags() | FD_CLOEXEC) || !m_xwmFDs[1].setFlags(m_xwmFDs[1].getFlags() | FD_CLOEXEC)) {
Debug::log(ERR, "set_cloexec failed (2)");
die();
return false;
}
- xwaylandClient = wl_client_create(g_pCompositor->m_wlDisplay, waylandFDs[0].get());
- if (!xwaylandClient) {
+ m_xwaylandClient = wl_client_create(g_pCompositor->m_wlDisplay, m_waylandFDs[0].get());
+ if (!m_xwaylandClient) {
Debug::log(ERR, "wl_client_create failed");
die();
return false;
}
- waylandFDs[0].take(); // wl_client owns this fd now
+ m_waylandFDs[0].take(); // wl_client owns this fd now
int notify[2] = {-1, -1};
if (pipe(notify) < 0) {
@@ -369,8 +369,8 @@ bool CXWaylandServer::start() {
return false;
}
- pipeSource = wl_event_loop_add_fd(g_pCompositor->m_wlEventLoop, notifyFds[0].get(), WL_EVENT_READABLE, ::xwaylandReady, nullptr);
- pipeFd = std::move(notifyFds[0]);
+ m_pipeSource = wl_event_loop_add_fd(g_pCompositor->m_wlEventLoop, notifyFds[0].get(), WL_EVENT_READABLE, ::xwaylandReady, nullptr);
+ m_pipeFd = std::move(notifyFds[0]);
auto serverPID = fork();
if (serverPID < 0) {
@@ -400,19 +400,19 @@ int CXWaylandServer::ready(int fd, uint32_t mask) {
// if we don't have readable here, it failed
if (!(mask & WL_EVENT_READABLE)) {
Debug::log(ERR, "Xwayland: startup failed, not setting up xwm");
- g_pXWayland->pServer.reset();
+ g_pXWayland->m_server.reset();
return 1;
}
Debug::log(LOG, "XWayland is ready");
- wl_event_source_remove(pipeSource);
- pipeFd.reset();
- pipeSource = nullptr;
+ wl_event_source_remove(m_pipeSource);
+ m_pipeFd.reset();
+ m_pipeSource = nullptr;
// start the wm
- if (!g_pXWayland->pWM)
- g_pXWayland->pWM = makeUnique<CXWM>();
+ if (!g_pXWayland->m_wm)
+ g_pXWayland->m_wm = makeUnique<CXWM>();
g_pCursorManager->setXWaylandCursor();