From 4b985d3e3805fe9b9d751010146313d78257141b Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 28 Apr 2022 17:57:24 +0200 Subject: [PATCH] fix crash when yanking mouse before init --- src/Compositor.hpp | 2 ++ src/events/Monitors.cpp | 3 +++ src/managers/InputManager.cpp | 3 +++ 3 files changed, 8 insertions(+) diff --git a/src/Compositor.hpp b/src/Compositor.hpp index d4d9ffcd..1a45592c 100644 --- a/src/Compositor.hpp +++ b/src/Compositor.hpp @@ -74,6 +74,8 @@ public: SSeat m_sSeat; + bool m_bReadyToProcess = false; + // ------------------------------------------------- // SMonitor* getMonitorFromID(const int&); diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index ab2caa3d..fb98ae85 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -122,6 +122,9 @@ void Events::listener_newOutput(wl_listener* listener, void* data) { if (!g_pCompositor->m_pLastMonitor) // set the last monitor if it isnt set yet g_pCompositor->m_pLastMonitor = PNEWMONITOR; + + // ready to process cuz we have a monitor + g_pCompositor->m_bReadyToProcess = true; } void Events::listener_monitorFrame(void* owner, void* data) { diff --git a/src/managers/InputManager.cpp b/src/managers/InputManager.cpp index 2853924d..2ba9dc06 100644 --- a/src/managers/InputManager.cpp +++ b/src/managers/InputManager.cpp @@ -23,6 +23,9 @@ void CInputManager::onMouseWarp(wlr_pointer_motion_absolute_event* e) { void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) { + if (!g_pCompositor->m_bReadyToProcess) + return; + // update stuff updateDragIcon();