summaryrefslogtreecommitdiff
blob: 21e3353159073194151938cc6f9abdf2a03c3020 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
From 5cb38daedbfa5ef26a47d82d197c96230a004b0f Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Wed, 30 Sep 2020 08:56:16 +0000
Subject: [PATCH] [containmentactions] Guard against having no virtual desktops

It can apparently happen that virtual desktops is empty at a given point
in time. Potentially due to other bugs on the system.

Calls to desktopIds.at(N) will fail.

BUG: 427106


(cherry picked from commit 2441c82a2a92535ccc0a9643715427eb362c98e8)
---
 containmentactions/switchdesktop/desktop.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/containmentactions/switchdesktop/desktop.cpp b/containmentactions/switchdesktop/desktop.cpp
index 809543a49..dda78c584 100644
--- a/containmentactions/switchdesktop/desktop.cpp
+++ b/containmentactions/switchdesktop/desktop.cpp
@@ -85,6 +85,10 @@ void SwitchDesktop::switchTo()
 void SwitchDesktop::performNextAction()
 {
     const QVariantList &desktopIds = m_virtualDesktopInfo->desktopIds();
+    if (desktopIds.isEmpty()) {
+        return;
+    }
+
     const QVariant &currentDesktop = m_virtualDesktopInfo->currentDesktop();
     const int currentDesktopIndex = desktopIds.indexOf(currentDesktop);
 
@@ -100,6 +104,9 @@ void SwitchDesktop::performNextAction()
 void SwitchDesktop::performPreviousAction()
 {
     const QVariantList &desktopIds = m_virtualDesktopInfo->desktopIds();
+    if (desktopIds.isEmpty()) {
+        return;
+    }
     const QVariant &currentDesktop = m_virtualDesktopInfo->currentDesktop();
     const int currentDesktopIndex = desktopIds.indexOf(currentDesktop);
 
-- 
GitLab