summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-28 12:39:56 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-06-28 12:39:56 +0200
commit3cbd69e7039c7ed020bde7f7a58ed5c8da93155b (patch)
tree7fb94d1f6262c14e9f720fab32f518cb6819ff20 /src
parenta2e009bd9fe156a49225db907adb131c0fde10e3 (diff)
added createworkspace destroyworkspace events
Diffstat (limited to 'src')
-rw-r--r--src/events/Monitors.cpp3
-rw-r--r--src/helpers/Workspace.cpp8
-rw-r--r--src/helpers/Workspace.hpp2
-rw-r--r--src/managers/KeybindManager.cpp3
4 files changed, 9 insertions, 7 deletions
diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp
index 9da5f779..35492d17 100644
--- a/src/events/Monitors.cpp
+++ b/src/events/Monitors.cpp
@@ -135,13 +135,12 @@ void Events::listener_newOutput(wl_listener* listener, void* data) {
g_pLayoutManager->getCurrentLayout()->recalculateMonitor(PNEWMONITOR->ID);
PNEWWORKSPACE->startAnim(true,true,true);
} else {
- PNEWWORKSPACE = &g_pCompositor->m_lWorkspaces.emplace_back(newMonitor.ID);
+ PNEWWORKSPACE = &g_pCompositor->m_lWorkspaces.emplace_back(newMonitor.ID, newDefaultWorkspaceName);
// We are required to set the name here immediately
wlr_ext_workspace_handle_v1_set_name(PNEWWORKSPACE->m_pWlrHandle, newDefaultWorkspaceName.c_str());
PNEWWORKSPACE->m_iID = WORKSPACEID;
- PNEWWORKSPACE->m_szName = newDefaultWorkspaceName;
}
PNEWMONITOR->activeWorkspace = PNEWWORKSPACE->m_iID;
diff --git a/src/helpers/Workspace.cpp b/src/helpers/Workspace.cpp
index 90d234cb..7c0185b4 100644
--- a/src/helpers/Workspace.cpp
+++ b/src/helpers/Workspace.cpp
@@ -1,7 +1,7 @@
#include "Workspace.hpp"
#include "../Compositor.hpp"
-CWorkspace::CWorkspace(int monitorID, bool special) {
+CWorkspace::CWorkspace(int monitorID, std::string name, bool special) {
const auto PMONITOR = g_pCompositor->getMonitorFromID(monitorID);
if (!PMONITOR) {
@@ -10,7 +10,7 @@ CWorkspace::CWorkspace(int monitorID, bool special) {
}
m_iMonitorID = monitorID;
-
+ m_szName = name;
m_bIsSpecialWorkspace = special;
if (!special) {
@@ -30,6 +30,8 @@ CWorkspace::CWorkspace(int monitorID, bool special) {
m_fAlpha.m_pWorkspace = this;
m_fAlpha.create(AVARTYPE_FLOAT, &g_pConfigManager->getConfigValuePtr("animations:workspaces_speed")->floatValue, &g_pConfigManager->getConfigValuePtr("animations:workspaces")->intValue, &g_pConfigManager->getConfigValuePtr("animations:workspaces_curve")->strValue, nullptr, AVARDAMAGE_ENTIRE);
m_fAlpha.setValueAndWarp(255.f);
+
+ g_pEventManager->postEvent({"createworkspace", m_szName});
}
CWorkspace::~CWorkspace() {
@@ -42,6 +44,8 @@ CWorkspace::~CWorkspace() {
wlr_ext_workspace_handle_v1_destroy(m_pWlrHandle);
m_pWlrHandle = nullptr;
}
+
+ g_pEventManager->postEvent({"destroyworkspace", m_szName});
}
void CWorkspace::startAnim(bool in, bool left, bool instant) {
diff --git a/src/helpers/Workspace.hpp b/src/helpers/Workspace.hpp
index 21b36e9f..2d0c5941 100644
--- a/src/helpers/Workspace.hpp
+++ b/src/helpers/Workspace.hpp
@@ -10,7 +10,7 @@ enum eFullscreenMode : uint8_t {
class CWorkspace {
public:
- CWorkspace(int monitorID, bool special = false);
+ CWorkspace(int monitorID, std::string name, bool special = false);
~CWorkspace();
// Workspaces ID-based have IDs > 0
diff --git a/src/managers/KeybindManager.cpp b/src/managers/KeybindManager.cpp
index 99b758b0..14c535d8 100644
--- a/src/managers/KeybindManager.cpp
+++ b/src/managers/KeybindManager.cpp
@@ -336,7 +336,7 @@ void CKeybindManager::changeworkspace(std::string args) {
if (const auto POLDWORKSPACE = g_pCompositor->getWorkspaceByID(OLDWORKSPACE); POLDWORKSPACE)
POLDWORKSPACE->startAnim(false, ANIMTOLEFT);
- g_pCompositor->m_lWorkspaces.emplace_back(PMONITOR->ID, workspaceToChangeTo == SPECIAL_WORKSPACE_ID);
+ g_pCompositor->m_lWorkspaces.emplace_back(PMONITOR->ID, workspaceName, workspaceToChangeTo == SPECIAL_WORKSPACE_ID);
const auto PWORKSPACE = &g_pCompositor->m_lWorkspaces.back();
// start anim on new workspace
@@ -348,7 +348,6 @@ void CKeybindManager::changeworkspace(std::string args) {
PWORKSPACE->m_iID = workspaceToChangeTo;
PWORKSPACE->m_iMonitorID = PMONITOR->ID;
- PWORKSPACE->m_szName = workspaceName;
PMONITOR->specialWorkspaceOpen = false;