From a4ef84d987120707f0cda9cb21068ce1c0285cd2 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 17 Mar 2022 17:08:54 +0100 Subject: it now actually runs lol --- src/Compositor.cpp | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'src/Compositor.cpp') 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(); + + Debug::log(LOG, "Creating the ManagerThread!"); + g_pManagerThread = std::make_unique(); + + Debug::log(LOG, "Creating the InputManager!"); + g_pInputManager = std::make_unique(); + // + // + 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(); - - Debug::log(LOG, "Creating the ManagerThread!"); - g_pManagerThread = std::make_unique(); - - Debug::log(LOG, "Creating the InputManager!"); - g_pInputManager = std::make_unique(); - // This blocks until we are done. Debug::log(LOG, "Hyprland is ready, running the event loop!"); wl_display_run(m_sWLDisplay); -- cgit v1.2.3