Attempt to fix mouse summon, v2.9.12
This commit is contained in:
parent
cf8f4422df
commit
01edb1ea58
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue