parent
c60a87a1d7
commit
ec8ddefecb
@ -1,59 +0,0 @@
|
||||
From bac4f4ed62017bb4aeb81078f5ec2cd915af5de4 Mon Sep 17 00:00:00 2001
|
||||
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||||
Date: Wed, 23 Feb 2022 20:17:28 +0200
|
||||
Subject: [PATCH] Revert "Remove mysterious s_cursorUpdateBlocking boolean flag
|
||||
in pointer_input.cpp"
|
||||
|
||||
This reverts commit 3d0bdc56a48fe0d5cc0889ab098f6c6c922d20c7.
|
||||
|
||||
seat->setFocusedPointerSurface() before notifyPointerMotion() is needed
|
||||
to prevent sending a motion event that's outside the previously focused
|
||||
surface.
|
||||
|
||||
BUG: 449273
|
||||
|
||||
|
||||
(cherry picked from commit aaa07f0605d605ae2472b1a8f7f4bd07f2138cb2)
|
||||
---
|
||||
src/pointer_input.cpp | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/src/pointer_input.cpp b/src/pointer_input.cpp
|
||||
index 88091e88b..a608b50e6 100644
|
||||
--- a/src/pointer_input.cpp
|
||||
+++ b/src/pointer_input.cpp
|
||||
@@ -548,6 +548,8 @@ void PointerInputRedirection::cleanupDecoration(Decoration::DecoratedClientImpl
|
||||
m_decorationDestroyedConnection = connect(now, &QObject::destroyed, this, &PointerInputRedirection::update, Qt::QueuedConnection);
|
||||
}
|
||||
|
||||
+static bool s_cursorUpdateBlocking = false;
|
||||
+
|
||||
void PointerInputRedirection::focusUpdate(Toplevel *focusOld, Toplevel *focusNow)
|
||||
{
|
||||
if (AbstractClient *ac = qobject_cast<AbstractClient*>(focusOld)) {
|
||||
@@ -568,6 +570,11 @@ void PointerInputRedirection::focusUpdate(Toplevel *focusOld, Toplevel *focusNow
|
||||
return;
|
||||
}
|
||||
|
||||
+ // prevent updating cursor and sending motion event outside the previously focused surface
|
||||
+ s_cursorUpdateBlocking = true;
|
||||
+ seat->setFocusedPointerSurface(nullptr);
|
||||
+ s_cursorUpdateBlocking = false;
|
||||
+
|
||||
seat->notifyPointerMotion(m_pos.toPoint());
|
||||
seat->setFocusedPointerSurface(focusNow->surface(), focusNow->inputTransformation());
|
||||
|
||||
@@ -1014,6 +1021,10 @@ void CursorImage::handlePointerChanged()
|
||||
|
||||
void CursorImage::handleFocusedSurfaceChanged()
|
||||
{
|
||||
+ if (s_cursorUpdateBlocking) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
KWaylandServer::PointerInterface *pointer = waylandServer()->seat()->pointer();
|
||||
disconnect(m_serverCursor.connection);
|
||||
|
||||
--
|
||||
2.35.1
|
||||
|
Loading…
Reference in new issue