summaryrefslogtreecommitdiff
path: root/src/layout/IHyprLayout.cpp
diff options
context:
space:
mode:
authorVaxry <43317083+vaxerski@users.noreply.github.com>2025-10-31 00:14:08 +0000
committerGitHub <noreply@github.com>2025-10-31 00:14:08 +0000
commit5e6cec962c780956177e56355ffc1d64cc5f83ca (patch)
tree9277452bb7202094e8a2a2cac3acea7aaa964772 /src/layout/IHyprLayout.cpp
parent6ade4d58cab67e18aa758ef664e36421cab4d8b2 (diff)
cursor: refactor override handling (#12166)
much cleaner and more reliable. Should fix https://github.com/hyprwm/Hyprland/issues/12088
Diffstat (limited to 'src/layout/IHyprLayout.cpp')
-rw-r--r--src/layout/IHyprLayout.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/layout/IHyprLayout.cpp b/src/layout/IHyprLayout.cpp
index 4ae41d57..38868424 100644
--- a/src/layout/IHyprLayout.cpp
+++ b/src/layout/IHyprLayout.cpp
@@ -12,6 +12,7 @@
#include "../managers/LayoutManager.hpp"
#include "../managers/EventManager.hpp"
#include "../managers/HookSystemManager.hpp"
+#include "../managers/cursor/CursorShapeOverrideController.hpp"
void IHyprLayout::onWindowCreated(PHLWINDOW pWindow, eDirection direction) {
CBox desiredGeometry = g_pXWaylandManager->getGeometryForWindow(pWindow);
@@ -243,7 +244,7 @@ void IHyprLayout::onBeginDragWindow() {
// Window will be floating. Let's check if it's valid. It should be, but I don't like crashing.
if (!validMapped(DRAGGINGWINDOW)) {
Debug::log(ERR, "Dragging attempted on an invalid window!");
- g_pKeybindManager->changeMouseBindMode(MBIND_INVALID);
+ CKeybindManager::changeMouseBindMode(MBIND_INVALID);
return;
}
@@ -259,41 +260,41 @@ void IHyprLayout::onBeginDragWindow() {
switch (*RESIZECORNER) {
case 1:
m_grabbedCorner = CORNER_TOPLEFT;
- g_pInputManager->setCursorImageUntilUnset("nw-resize");
+ Cursor::overrideController->setOverride("nw-resize", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
break;
case 2:
m_grabbedCorner = CORNER_TOPRIGHT;
- g_pInputManager->setCursorImageUntilUnset("ne-resize");
+ Cursor::overrideController->setOverride("ne-resize", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
break;
case 3:
m_grabbedCorner = CORNER_BOTTOMRIGHT;
- g_pInputManager->setCursorImageUntilUnset("se-resize");
+ Cursor::overrideController->setOverride("se-resize", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
break;
case 4:
m_grabbedCorner = CORNER_BOTTOMLEFT;
- g_pInputManager->setCursorImageUntilUnset("sw-resize");
+ Cursor::overrideController->setOverride("sw-resize", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
break;
}
} else if (m_beginDragXY.x < m_beginDragPositionXY.x + m_beginDragSizeXY.x / 2.0) {
if (m_beginDragXY.y < m_beginDragPositionXY.y + m_beginDragSizeXY.y / 2.0) {
m_grabbedCorner = CORNER_TOPLEFT;
- g_pInputManager->setCursorImageUntilUnset("nw-resize");
+ Cursor::overrideController->setOverride("nw-resize", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
} else {
m_grabbedCorner = CORNER_BOTTOMLEFT;
- g_pInputManager->setCursorImageUntilUnset("sw-resize");
+ Cursor::overrideController->setOverride("sw-resize", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
}
} else {
if (m_beginDragXY.y < m_beginDragPositionXY.y + m_beginDragSizeXY.y / 2.0) {
m_grabbedCorner = CORNER_TOPRIGHT;
- g_pInputManager->setCursorImageUntilUnset("ne-resize");
+ Cursor::overrideController->setOverride("ne-resize", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
} else {
m_grabbedCorner = CORNER_BOTTOMRIGHT;
- g_pInputManager->setCursorImageUntilUnset("se-resize");
+ Cursor::overrideController->setOverride("se-resize", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
}
}
if (g_pInputManager->m_dragMode != MBIND_RESIZE && g_pInputManager->m_dragMode != MBIND_RESIZE_FORCE_RATIO && g_pInputManager->m_dragMode != MBIND_RESIZE_BLOCK_RATIO)
- g_pInputManager->setCursorImageUntilUnset("grabbing");
+ Cursor::overrideController->setOverride("grabbing", Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
g_pHyprRenderer->damageWindow(DRAGGINGWINDOW);
@@ -310,13 +311,13 @@ void IHyprLayout::onEndDragWindow() {
if (!validMapped(DRAGGINGWINDOW)) {
if (DRAGGINGWINDOW) {
- g_pInputManager->unsetCursorImage();
+ Cursor::overrideController->unsetOverride(Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
g_pInputManager->m_currentlyDraggedWindow.reset();
}
return;
}
- g_pInputManager->unsetCursorImage();
+ Cursor::overrideController->unsetOverride(Cursor::CURSOR_OVERRIDE_SPECIAL_ACTION);
g_pInputManager->m_currentlyDraggedWindow.reset();
g_pInputManager->m_wasDraggingWindow = true;