summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-03-17 17:08:54 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-03-17 17:08:54 +0100
commita4ef84d987120707f0cda9cb21068ce1c0285cd2 (patch)
tree973105b92f3c3b1086de318e6ea02a5f7b0754db /src
parentd6c2553af2fc42b3ea61a1bd5f6e2cc395deccbe (diff)
it now actually runs lol
Diffstat (limited to 'src')
-rw-r--r--src/Compositor.cpp26
-rw-r--r--src/ManagerThread.cpp3
-rw-r--r--src/config/ConfigManager.cpp2
-rw-r--r--src/config/ConfigManager.hpp1
4 files changed, 22 insertions, 10 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 552b58bd..6119a2a2 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -40,7 +40,7 @@ CCompositor::CCompositor() {
m_sWLRXDGActivation - wlr_xdg_activation_v1_create(m_sWLDisplay);
m_sWLROutputLayout = wlr_output_layout_create();
- wl_signal_add(&m_sWLRXDGActivation->events.request_activate, &Events::listen_activate);
+ // wl_signal_add(&m_sWLRXDGActivation->events.request_activate, &Events::listen_activate);
wl_signal_add(&m_sWLROutputLayout->events.change, &Events::listen_change);
wl_signal_add(&m_sWLRBackend->events.new_output, &Events::listen_newOutput);
@@ -88,6 +88,21 @@ CCompositor::~CCompositor() {
}
void CCompositor::startCompositor() {
+
+ // Init all the managers BEFORE we start with the wayland server so that ALL of the stuff is initialized
+ // properly and we dont get any bad mem reads.
+ //
+ Debug::log(LOG, "Creating the config manager!");
+ g_pConfigManager = std::make_unique<CConfigManager>();
+
+ Debug::log(LOG, "Creating the ManagerThread!");
+ g_pManagerThread = std::make_unique<CManagerThread>();
+
+ Debug::log(LOG, "Creating the InputManager!");
+ g_pInputManager = std::make_unique<CInputManager>();
+ //
+ //
+
m_szWLDisplaySocket = wl_display_add_socket_auto(m_sWLDisplay);
if (!m_szWLDisplaySocket) {
@@ -108,15 +123,6 @@ void CCompositor::startCompositor() {
wlr_xcursor_manager_set_cursor_image(m_sWLRXCursorMgr, "left_ptr", m_sWLRCursor);
- Debug::log(LOG, "Creating the config manager!");
- g_pConfigManager = std::make_unique<CConfigManager>();
-
- Debug::log(LOG, "Creating the ManagerThread!");
- g_pManagerThread = std::make_unique<CManagerThread>();
-
- Debug::log(LOG, "Creating the InputManager!");
- g_pInputManager = std::make_unique<CInputManager>();
-
// This blocks until we are done.
Debug::log(LOG, "Hyprland is ready, running the event loop!");
wl_display_run(m_sWLDisplay);
diff --git a/src/ManagerThread.cpp b/src/ManagerThread.cpp
index 8ddb3b53..6dfa46de 100644
--- a/src/ManagerThread.cpp
+++ b/src/ManagerThread.cpp
@@ -14,6 +14,9 @@ CManagerThread::~CManagerThread() {
}
void CManagerThread::handle() {
+
+ g_pConfigManager->init();
+
while (3.1415f) {
g_pConfigManager->tick();
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 47255651..4cd9c007 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -15,7 +15,9 @@ CConfigManager::CConfigManager() {
configValues["general:border_size"].intValue = 1;
configValues["general:gaps_in"].intValue = 5;
configValues["general:gaps_out"].intValue = 20;
+}
+void CConfigManager::init() {
loadConfigLoadVars();
isFirstLaunch = false;
diff --git a/src/config/ConfigManager.hpp b/src/config/ConfigManager.hpp
index eda06044..b9c58900 100644
--- a/src/config/ConfigManager.hpp
+++ b/src/config/ConfigManager.hpp
@@ -26,6 +26,7 @@ public:
CConfigManager();
void tick();
+ void init();
int getInt(std::string);
float getFloat(std::string);