aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-08-31 22:25:12 +0800
committerYuqian Yang <crupest@crupest.life>2025-09-03 22:48:05 +0800
commitefce9cc6dbbeece12fe348ec742f9c501459d37d (patch)
treee17a07a875db36e6e0a1b4aac126f7a22c0bb70f
parentcf1a0aea8080c06d70bba5984743c2948d4215c3 (diff)
downloadcru-efce9cc6dbbeece12fe348ec742f9c501459d37d.tar.gz
cru-efce9cc6dbbeece12fe348ec742f9c501459d37d.tar.bz2
cru-efce9cc6dbbeece12fe348ec742f9c501459d37d.zip
Init XcbUiApplication.
-rw-r--r--include/cru/platform/gui/xcb/UiApplication.h1
-rw-r--r--src/platform/gui/xcb/UiApplication.cpp13
2 files changed, 9 insertions, 5 deletions
diff --git a/include/cru/platform/gui/xcb/UiApplication.h b/include/cru/platform/gui/xcb/UiApplication.h
index a58a538f..d8702087 100644
--- a/include/cru/platform/gui/xcb/UiApplication.h
+++ b/include/cru/platform/gui/xcb/UiApplication.h
@@ -60,5 +60,6 @@ class XcbUiApplication : public XcbResource, public virtual IUiApplication {
private:
xcb_connection_t* xcb_;
+ xcb_screen_t* screen_;
};
} // namespace cru::platform::gui::xcb
diff --git a/src/platform/gui/xcb/UiApplication.cpp b/src/platform/gui/xcb/UiApplication.cpp
index baa36abe..6cd0a177 100644
--- a/src/platform/gui/xcb/UiApplication.cpp
+++ b/src/platform/gui/xcb/UiApplication.cpp
@@ -1,4 +1,5 @@
#include <cru/platform/gui/xcb/UiApplication.h>
+
#include <xcb/xcb.h>
namespace cru::platform::gui::xcb {
@@ -6,15 +7,17 @@ XcbUiApplication::XcbUiApplication() {
int screen_num;
xcb_connection_t *connection = xcb_connect(NULL, &screen_num);
this->CheckXcbConnectionError();
+
const xcb_setup_t *setup = xcb_get_setup(connection);
xcb_screen_iterator_t iter = xcb_setup_roots_iterator(setup);
- xcb_screen_t *screen = iter.data;
+ this->screen_ = iter.data;
}
XcbUiApplication::~XcbUiApplication() { xcb_disconnect(this->xcb_); }
-void XcbUiApplication::CheckXcbConnectionError() {
-if (xcb_connection_has_error(this->xcb_)) {
- throw XcbException();
-}}
+void XcbUiApplication::CheckXcbConnectionError() {
+ if (xcb_connection_has_error(this->xcb_)) {
+ throw XcbException("xcb_connection_has_error returned non-zero.");
+ }
+}
} // namespace cru::platform::gui::xcb