Attempt to fix mouse summon, v2.9.12

This commit is contained in:
wheaney 2026-04-27 20:10:16 -07:00
parent cf8f4422df
commit 01edb1ea58
2 changed files with 23 additions and 4 deletions

View File

@ -1 +1 @@
2.9.11 2.9.12

View File

@ -2,6 +2,7 @@
#include "core/rendertarget.h" #include "core/rendertarget.h"
#include "core/renderviewport.h" #include "core/renderviewport.h"
#include "cursor.h" #include "cursor.h"
#include "input.h"
#include "pointer_input.h" #include "pointer_input.h"
#include "kcm/shortcuts.h" #include "kcm/shortcuts.h"
#include "breezydesktopeffect.h" #include "breezydesktopeffect.h"
@ -1005,10 +1006,28 @@ void BreezyDesktopEffect::warpPointerToOutputCenter(ScreenOutput *output)
} }
const QRect geometry = output->geometry(); const QRect geometry = output->geometry();
const QPointF center = geometry.center(); const QPointF center = geometry.center();
Cursors::self()->mouse()->setPos(center);
// When warping, we don't have a meaningful previous position; use center for both. bool warped = false;
evaluateCursorOnScreenState(center, center); if (InputRedirection *inputRedirection = input(); inputRedirection && inputRedirection->supportsPointerWarping()) {
inputRedirection->warpPointer(center);
warped = true;
} else if (auto *mouseCursor = Cursors::self()->mouse(); mouseCursor) {
mouseCursor->setPos(center);
warped = true;
}
if (!warped) {
return;
}
const QPointF newPos = center - effects->cursorImage().hotSpot();
const QPointF prevPos = m_cursorPos;
if (m_cursorPos != newPos) {
m_cursorPos = newPos;
Q_EMIT cursorPosChanged();
}
evaluateCursorOnScreenState(prevPos, newPos);
} }
void BreezyDesktopEffect::moveCursorToFocusedDisplay() void BreezyDesktopEffect::moveCursorToFocusedDisplay()