From 2f1ea611385b5bf8985a5b0571eb71976b9a8e52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Tue, 9 Sep 2025 02:21:04 +0800 Subject: Init xcb window. --- src/platform/gui/xcb/UiApplication.cpp | 8 ++++++++ src/platform/gui/xcb/Window.cpp | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'src/platform/gui') diff --git a/src/platform/gui/xcb/UiApplication.cpp b/src/platform/gui/xcb/UiApplication.cpp index d64fc9da..139a5422 100644 --- a/src/platform/gui/xcb/UiApplication.cpp +++ b/src/platform/gui/xcb/UiApplication.cpp @@ -79,4 +79,12 @@ void XcbUiApplication::HandleXEvents() { NotImplemented(); } } + +void XcbUiApplication::RegisterWindow(XcbWindow *window) { + windows_.push_back(window); +} + +void XcbUiApplication::UnregisterWindow(XcbWindow *window) { + std::erase(windows_, window); +} } // namespace cru::platform::gui::xcb diff --git a/src/platform/gui/xcb/Window.cpp b/src/platform/gui/xcb/Window.cpp index 92772acf..cf4e059d 100644 --- a/src/platform/gui/xcb/Window.cpp +++ b/src/platform/gui/xcb/Window.cpp @@ -1 +1,11 @@ -#include +#include "cru/platform/gui/xcb/Window.h" +#include "cru/platform/gui/xcb/UiApplication.h" + +namespace cru::platform::gui::xcb { +XcbWindow::XcbWindow(XcbUiApplication* application) + : application_(application) { + application->RegisterWindow(this); +} + +XcbWindow::~XcbWindow() { application_->UnregisterWindow(this); } +} // namespace cru::platform::gui::xcb -- cgit v1.2.3