You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.4 KiB
37 lines
1.4 KiB
2 years ago
|
From da26deaa5c843ef303ef9f1b9f0cd3d341c5c5f5 Mon Sep 17 00:00:00 2001
|
||
|
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||
|
Date: Wed, 22 Feb 2023 21:35:26 +0200
|
||
|
Subject: [PATCH] backends/libinput: Fix crash upon receiving motion absolute
|
||
|
events
|
||
|
|
||
|
The input events can be processed when the workspace is not available,
|
||
|
e.g. during startup or shutdown, so add a corresponding guard.
|
||
|
|
||
|
As a long term plan, we need to decouple Workspace from low-level input
|
||
|
backend parts, but it will be a too invasive change for now.
|
||
|
|
||
|
BUG: 449317
|
||
|
BUG: 465456
|
||
|
---
|
||
|
src/backends/libinput/connection.cpp | 4 +++-
|
||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/backends/libinput/connection.cpp b/src/backends/libinput/connection.cpp
|
||
|
index f99771d9b1..db1a19b687 100644
|
||
|
--- a/src/backends/libinput/connection.cpp
|
||
|
+++ b/src/backends/libinput/connection.cpp
|
||
|
@@ -373,7 +373,9 @@ void Connection::processEvents()
|
||
|
}
|
||
|
case LIBINPUT_EVENT_POINTER_MOTION_ABSOLUTE: {
|
||
|
PointerEvent *pe = static_cast<PointerEvent *>(event.get());
|
||
|
- Q_EMIT pe->device()->pointerMotionAbsolute(pe->absolutePos(workspace()->geometry().size()), pe->time(), pe->device());
|
||
|
+ if (workspace()) {
|
||
|
+ Q_EMIT pe->device()->pointerMotionAbsolute(pe->absolutePos(workspace()->geometry().size()), pe->time(), pe->device());
|
||
|
+ }
|
||
|
break;
|
||
|
}
|
||
|
case LIBINPUT_EVENT_TOUCH_DOWN: {
|
||
|
--
|
||
|
GitLab
|
||
|
|