summaryrefslogtreecommitdiff
path: root/src/xwayland/XWM.cpp
diff options
context:
space:
mode:
authorJasson <Jasson.cordones@hotmail.com>2024-09-20 07:32:04 -0400
committerGitHub <noreply@github.com>2024-09-20 12:32:04 +0100
commit4414cd07e257a57362e73d1f6efe1df692ae3762 (patch)
treed1dce478c3d1acf803089fbd9f793edef03a2391 /src/xwayland/XWM.cpp
parent9e98fb0167f8bc6c5eb4510a65b42aaa3b743421 (diff)
xwm: Minor cleanup, add wrappers for basic types (#7856)
Diffstat (limited to 'src/xwayland/XWM.cpp')
-rw-r--r--src/xwayland/XWM.cpp37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/xwayland/XWM.cpp b/src/xwayland/XWM.cpp
index e8e2258a..dcb22eae 100644
--- a/src/xwayland/XWM.cpp
+++ b/src/xwayland/XWM.cpp
@@ -1,20 +1,21 @@
#include "helpers/math/Math.hpp"
+#include <cstdint>
#ifndef NO_XWAYLAND
+#include <ranges>
+#include <fcntl.h>
+#include <cstring>
+#include <algorithm>
+#include <unordered_map>
+#include <xcb/xcb_icccm.h>
+
#include "XWayland.hpp"
#include "../defines.hpp"
-#include <unordered_map>
#include "../Compositor.hpp"
+#include "../protocols/core/Seat.hpp"
+#include "../managers/SeatManager.hpp"
#include "../protocols/XWaylandShell.hpp"
#include "../protocols/core/Compositor.hpp"
-#include "../managers/SeatManager.hpp"
-#include "../protocols/core/Seat.hpp"
-#include <ranges>
-#include <algorithm>
-#include <fcntl.h>
-#include <cstring>
-
-#include <xcb/xcb_icccm.h>
#define XCB_EVENT_RESPONSE_TYPE_MASK 0x7f
#define INCR_CHUNK_SIZE (64 * 1024)
@@ -830,15 +831,15 @@ void CXWM::getRenderFormat() {
free(reply);
}
-CXWM::CXWM() {
- connection = xcb_connect_to_fd(g_pXWayland->pServer->xwmFDs[0], nullptr);
+CXWM::CXWM() : connection(g_pXWayland->pServer->xwmFDs[0]) {
- if (int ret = xcb_connection_has_error(connection); ret) {
- Debug::log(ERR, "[xwm] Couldn't start, error {}", ret);
+ if (connection.hasError()) {
+ Debug::log(ERR, "[xwm] Couldn't start, error {}", connection.hasError());
return;
}
- if (xcb_errors_context_new(connection, &errors)) {
+ CXCBErrorContext xcbErrCtx(connection);
+ if (!xcbErrCtx.isValid()) {
Debug::log(ERR, "[xwm] Couldn't allocate errors context");
return;
}
@@ -867,10 +868,7 @@ CXWM::CXWM() {
};
xcb_change_property(connection, XCB_PROP_MODE_REPLACE, screen->root, HYPRATOMS["_NET_SUPPORTED"], XCB_ATOM_ATOM, 32, sizeof(supported) / sizeof(*supported), supported);
- xcb_flush(connection);
-
setActiveWindow(XCB_WINDOW_NONE);
-
initSelection();
listeners.newWLSurface = PROTO::compositor->events.newSurface.registerListener([this](std::any d) { onNewSurface(std::any_cast<SP<CWLSurfaceResource>>(d)); });
@@ -882,11 +880,6 @@ CXWM::CXWM() {
}
CXWM::~CXWM() {
- if (errors)
- xcb_errors_context_free(errors);
-
- if (connection)
- xcb_disconnect(connection);
if (eventSource)
wl_event_source_remove(eventSource);