diff options
| author | Vaxry <vaxry@vaxry.net> | 2025-02-15 00:18:43 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2025-02-15 00:18:43 +0000 |
| commit | 1309b59f2cb5179a4c59c111c35c7feede535eb6 (patch) | |
| tree | d86f631bb3cea78d709955af22e8d79bbd73fc3a /src/managers/PointerManager.cpp | |
| parent | fb36815b0146d7b494cd648be0dfaa67a14d164a (diff) | |
monitor: report a scheduled frame when tearing on cursor move
Diffstat (limited to 'src/managers/PointerManager.cpp')
| -rw-r--r-- | src/managers/PointerManager.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp index 1c8e9976..24f2b35d 100644 --- a/src/managers/PointerManager.cpp +++ b/src/managers/PointerManager.cpp @@ -17,6 +17,9 @@ #include <cstring> #include <gbm.h> #include <cairo/cairo.h> +#include <hyprutils/utils/ScopeGuard.hpp> + +using namespace Hyprutils::Utils; CPointerManager::CPointerManager() { hooks.monitorAdded = g_pHookSystem->hookDynamic("monitorAdded", [this](void* self, SCallbackInfo& info, std::any data) { @@ -310,7 +313,12 @@ void CPointerManager::onCursorMoved() { recalc = true; } - if (state->hardwareFailed || !state->entered) + if (!state->entered) + continue; + + CScopeGuard x([m] { m->onCursorMovedOnMonitor(); }); + + if (state->hardwareFailed) continue; const auto CURSORPOS = getCursorPosForMonitor(m); |
