From 76fc12869d186e59cf22d51e99e2909bf1828011 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Wed, 1 Mar 2023 22:12:26 +0000 Subject: [PATCH] nuke cursorSI due to crashes --- src/managers/input/InputManager.cpp | 34 ++++++++++++++--------------- src/managers/input/InputManager.hpp | 21 ++++++++---------- 2 files changed, 26 insertions(+), 29 deletions(-) diff --git a/src/managers/input/InputManager.cpp b/src/managers/input/InputManager.cpp index 5dee3ec0..bac3b83e 100644 --- a/src/managers/input/InputManager.cpp +++ b/src/managers/input/InputManager.cpp @@ -310,16 +310,16 @@ void CInputManager::mouseMoveUnified(uint32_t time, bool refocus) { } // if we're on an input deco, reset cursor. Don't on overriden - if (!m_bCursorImageOverriden) { - if (!VECINRECT(m_vLastCursorPosFloored, pFoundWindow->m_vRealPosition.vec().x, pFoundWindow->m_vRealPosition.vec().y, - pFoundWindow->m_vRealPosition.vec().x + pFoundWindow->m_vRealSize.vec().x, pFoundWindow->m_vRealPosition.vec().y + pFoundWindow->m_vRealSize.vec().y)) { - wlr_xcursor_manager_set_cursor_image(g_pCompositor->m_sWLRXCursorMgr, "left_ptr", g_pCompositor->m_sWLRCursor); - cursorSurfaceInfo.bUsed = false; - } else if (!cursorSurfaceInfo.bUsed) { - cursorSurfaceInfo.bUsed = true; - wlr_cursor_set_surface(g_pCompositor->m_sWLRCursor, cursorSurfaceInfo.pSurface, cursorSurfaceInfo.vHotspot.x, cursorSurfaceInfo.vHotspot.y); - } - } + // if (!m_bCursorImageOverriden) { + // if (!VECINRECT(m_vLastCursorPosFloored, pFoundWindow->m_vRealPosition.vec().x, pFoundWindow->m_vRealPosition.vec().y, + // pFoundWindow->m_vRealPosition.vec().x + pFoundWindow->m_vRealSize.vec().x, pFoundWindow->m_vRealPosition.vec().y + pFoundWindow->m_vRealSize.vec().y)) { + // wlr_xcursor_manager_set_cursor_image(g_pCompositor->m_sWLRXCursorMgr, "left_ptr", g_pCompositor->m_sWLRCursor); + // cursorSurfaceInfo.bUsed = false; + // } else if (!cursorSurfaceInfo.bUsed) { + // cursorSurfaceInfo.bUsed = true; + // wlr_cursor_set_surface(g_pCompositor->m_sWLRCursor, cursorSurfaceInfo.pSurface, cursorSurfaceInfo.vHotspot.x, cursorSurfaceInfo.vHotspot.y); + // } + // } if (*PFOLLOWMOUSE != 1 && !refocus) { if (pFoundWindow != g_pCompositor->m_pLastWindow && g_pCompositor->m_pLastWindow && @@ -413,14 +413,14 @@ void CInputManager::processMouseRequest(wlr_seat_pointer_request_set_cursor_even return; } - cursorSurfaceInfo.pSurface = e->surface; + // cursorSurfaceInfo.pSurface = e->surface; - if (e->surface) { - hyprListener_CursorSurfaceDestroy.removeCallback(); - hyprListener_CursorSurfaceDestroy.initCallback( - &e->surface->events.destroy, [&](void* owner, void* data) { cursorSurfaceInfo.pSurface = nullptr; }, this, "InputManager"); - cursorSurfaceInfo.vHotspot = {e->hotspot_x, e->hotspot_y}; - } + // if (e->surface) { + // hyprListener_CursorSurfaceDestroy.removeCallback(); + // hyprListener_CursorSurfaceDestroy.initCallback( + // &e->surface->events.destroy, [&](void* owner, void* data) { cursorSurfaceInfo.pSurface = nullptr; }, this, "InputManager"); + // cursorSurfaceInfo.vHotspot = {e->hotspot_x, e->hotspot_y}; + // } if (e->seat_client == g_pCompositor->m_sSeat.seat->pointer_state.focused_client) wlr_cursor_set_surface(g_pCompositor->m_sWLRCursor, e->surface, e->hotspot_x, e->hotspot_y); diff --git a/src/managers/input/InputManager.hpp b/src/managers/input/InputManager.hpp index 797dea92..fd5edf12 100644 --- a/src/managers/input/InputManager.hpp +++ b/src/managers/input/InputManager.hpp @@ -7,21 +7,18 @@ #include "../../helpers/Timer.hpp" #include "InputMethodRelay.hpp" -enum eClickBehaviorMode -{ +enum eClickBehaviorMode { CLICKMODE_DEFAULT = 0, CLICKMODE_KILL }; -enum eMouseBindMode -{ +enum eMouseBindMode { MBIND_INVALID = -1, MBIND_MOVE = 0, MBIND_RESIZE }; -enum eBorderIconDirection -{ +enum eBorderIconDirection { BORDERICON_NONE, BORDERICON_UP, BORDERICON_DOWN, @@ -214,12 +211,12 @@ class CInputManager { void setCursorIconOnBorder(CWindow* w); // cursor surface - struct cursorSI { - wlr_surface* pSurface = nullptr; - Vector2D vHotspot; - bool bUsed = false; - } cursorSurfaceInfo; - DYNLISTENER(CursorSurfaceDestroy); + // struct cursorSI { + // wlr_surface* pSurface = nullptr; + // Vector2D vHotspot; + // bool bUsed = false; + // } cursorSurfaceInfo; + // DYNLISTENER(CursorSurfaceDestroy); friend class CKeybindManager; };