From 50026f09348e0191b97d72514286968a43f6a507 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Fri, 31 Jan 2025 23:27:46 -0800 Subject: [PATCH] i3/ipc: ensure workspace does not exist at init before model add --- src/x11/i3/ipc/connection.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/x11/i3/ipc/connection.cpp b/src/x11/i3/ipc/connection.cpp index e5f7af03..d737f778 100644 --- a/src/x11/i3/ipc/connection.cpp +++ b/src/x11/i3/ipc/connection.cpp @@ -401,8 +401,9 @@ void I3Ipc::handleWorkspaceEvent(I3IpcEvent* event) { auto workspaceData = event->mData["current"]; auto* workspace = this->findWorkspaceByID(workspaceData["id"].toInt(-1)); + auto existed = workspace != nullptr; - if (workspace == nullptr) { + if (!existed) { workspace = new I3Workspace(this); } @@ -410,8 +411,10 @@ void I3Ipc::handleWorkspaceEvent(I3IpcEvent* event) { workspace->updateFromObject(workspaceData.toObject().toVariantMap()); } - this->mWorkspaces.insertObject(workspace); - qCInfo(logI3Ipc) << "Added workspace" << workspace->name() << "to list"; + if (!existed) { + this->mWorkspaces.insertObject(workspace); + qCInfo(logI3Ipc) << "Added workspace" << workspace->name() << "to list"; + } } else if (change == "focus") { auto oldData = event->mData["old"]; auto newData = event->mData["current"];