summaryrefslogtreecommitdiff
path: root/src/desktop/Workspace.hpp
diff options
context:
space:
mode:
authoroutfoxxed <outfoxxed@outfoxxed.me>2025-06-26 09:32:44 -0700
committerGitHub <noreply@github.com>2025-06-26 18:32:44 +0200
commit3bbdf9dc5ad2851f5d9f317362fc16705e4fd990 (patch)
tree025d7a25435925b235f2e94d18e31931b622c0c0 /src/desktop/Workspace.hpp
parent1f337a7a5e22ec45a77e275ce2e6ca165b298358 (diff)
protocols: add ext-workspace implementation (#10818)
Diffstat (limited to 'src/desktop/Workspace.hpp')
-rw-r--r--src/desktop/Workspace.hpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/desktop/Workspace.hpp b/src/desktop/Workspace.hpp
index 4f109257..5bf38489 100644
--- a/src/desktop/Workspace.hpp
+++ b/src/desktop/Workspace.hpp
@@ -4,6 +4,7 @@
#include <string>
#include "DesktopTypes.hpp"
#include "../helpers/MiscFunctions.hpp"
+#include "../helpers/signal/Signal.hpp"
enum eFullscreenMode : int8_t {
FSMODE_NONE = 0,
@@ -21,6 +22,8 @@ class CWorkspace {
CWorkspace(WORKSPACEID id, PHLMONITOR monitor, std::string name, bool special = false, bool isEmpty = true);
~CWorkspace();
+ WP<CWorkspace> m_self;
+
// Workspaces ID-based have IDs > 0
// and workspaces name-based have IDs starting with -1337
WORKSPACEID m_id = WORKSPACE_INVALID;
@@ -60,8 +63,6 @@ class CWorkspace {
// Inert: destroyed and invalid. If this is true, release the ptr you have.
bool inert();
void startAnim(bool in, bool left, bool instant = false);
- void setActive(bool on);
- void moveToMonitor(const MONITORID&);
MONITORID monitorID();
PHLWINDOW getLastFocusedWindow();
void rememberPrevWorkspace(const PHLWORKSPACE& prevWorkspace);
@@ -83,6 +84,13 @@ class CWorkspace {
void forceReportSizesToWindows();
void updateWindows();
+ struct {
+ CSignal destroy;
+ CSignal rename;
+ CSignal monitorChange;
+ CSignal activeChange;
+ } m_events;
+
private:
void init(PHLWORKSPACE self);
// Previous workspace ID and name is stored during a workspace change, allowing travel
@@ -91,7 +99,6 @@ class CWorkspace {
SP<HOOK_CALLBACK_FN> m_focusedWindowHook;
bool m_inert = true;
- WP<CWorkspace> m_self;
};
inline bool valid(const PHLWORKSPACE& ref) {