From 79a9bc9076a98cc11a7f2c361765adacda224b0c Mon Sep 17 00:00:00 2001 From: Julian Schuler <31921487+julianschuler@users.noreply.github.com> Date: Wed, 23 Nov 2022 15:10:26 +0100 Subject: [PATCH] Add option for retrieving first empty workspace (#1085) --- src/helpers/MiscFunctions.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/helpers/MiscFunctions.cpp b/src/helpers/MiscFunctions.cpp index 706bb31e..37828c5d 100644 --- a/src/helpers/MiscFunctions.cpp +++ b/src/helpers/MiscFunctions.cpp @@ -244,6 +244,13 @@ int getWorkspaceIDFromString(const std::string& in, std::string& outName) { result = WORKSPACE->m_iID; } outName = WORKSPACENAME; + } else if (in.find("empty") == 0) { + int id = 0; + while (++id < INT_MAX) { + const auto PWORKSPACE = g_pCompositor->getWorkspaceByID(id); + if (!PWORKSPACE || (g_pCompositor->getWindowsOnWorkspace(id) == 0)) + return id; + } } else { if ((in[0] == 'm' || in[0] == 'e') && (in[1] == '-' || in[1] == '+') && isNumber(in.substr(2))) { bool onAllMonitors = in[0] == 'e'; @@ -485,4 +492,4 @@ int64_t configStringToInt(const std::string& VALUE) { return 0; } return stol(VALUE); -} \ No newline at end of file +}