diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/platform/gui/xcb/UiApplication.cpp | 8 | ||||
-rw-r--r-- | src/platform/gui/xcb/Window.cpp | 12 |
2 files changed, 19 insertions, 1 deletions
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 <cru/platform/gui/xcb/Window.h> +#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 |