From 1f4659e7a468739bc2bdbd8f11675e40f9b99b0e Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Sat, 9 May 2026 04:09:46 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20workspace=5Fid?= =?UTF-8?q?=5Finvalid()=20=E6=9B=BF=E4=BB=A3=E7=9B=B4=E6=8E=A5=E6=AF=94?= =?UTF-8?q?=E8=BE=83=20ZDWM=5FWORKSPACE=5FID=5FINVALID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/runtime_config.c | 2 +- src/core/policy.c | 2 +- src/core/rules.c | 2 +- src/core/state.c | 4 ++-- src/core/types.h | 4 ++++ 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/config/runtime_config.c b/src/config/runtime_config.c index 704d548..3aaff63 100644 --- a/src/config/runtime_config.c +++ b/src/config/runtime_config.c @@ -127,7 +127,7 @@ static bool rule_action_valid(const rule_action_t *action, size_t workspace_count) { if (!action) return false; - if (action->workspace == ZDWM_WORKSPACE_ID_INVALID) { + if (workspace_id_invalid(action->workspace)) { return action->switch_to_workspace || action->fullscreen || action->maximize || action->floating; } diff --git a/src/core/policy.c b/src/core/policy.c index ecacb03..336e43c 100644 --- a/src/core/policy.c +++ b/src/core/policy.c @@ -92,7 +92,7 @@ static void route_map_request( bool have_rule_match = rules_resolve(rules, &e->metadata, &action); if (have_rule_match) { manage_window_command_t *data = &manage_window_cmd.as.manage_window; - if (action.workspace != ZDWM_WORKSPACE_ID_INVALID) { + if (!workspace_id_invalid(action.workspace)) { data->workspace = action.workspace; } if (action.floating) data->floating = true; diff --git a/src/core/rules.c b/src/core/rules.c index 338593a..5dbe7d8 100644 --- a/src/core/rules.c +++ b/src/core/rules.c @@ -55,7 +55,7 @@ rule_match_window(const rule_match_t *match, const window_metadata_t *meta) { static void rule_action_merge(const rule_action_t *src, rule_action_t *dest) { if (!src || !dest) return; - if (src->workspace != ZDWM_WORKSPACE_ID_INVALID) { + if (!workspace_id_invalid(src->workspace)) { dest->workspace = src->workspace; } dest->switch_to_workspace |= src->switch_to_workspace; diff --git a/src/core/state.c b/src/core/state.c index a80a6e2..3659416 100644 --- a/src/core/state.c +++ b/src/core/state.c @@ -54,7 +54,7 @@ void state_init( workspace->layout_count = workspace_desc->layout_count; workspace->name = p_strdup(workspace_desc->name); - if (output->current_workspace_id == ZDWM_WORKSPACE_ID_INVALID) { + if (workspace_id_invalid(output->current_workspace_id)) { output->current_workspace_id = workspace->id; } } @@ -62,7 +62,7 @@ void state_init( for (size_t i = 0; i < state->output_count; i++) { const output_t *output = &state->outputs[i]; - if (output->current_workspace_id == ZDWM_WORKSPACE_ID_INVALID) { + if (workspace_id_invalid(output->current_workspace_id)) { fatal("output at index %zu has no workspace", i); } } diff --git a/src/core/types.h b/src/core/types.h index 8f258c5..b44b143 100644 --- a/src/core/types.h +++ b/src/core/types.h @@ -105,3 +105,7 @@ typedef struct only_window_data_t { static inline bool window_id_invalid(window_id_t window_id) { return window_id == ZDWM_WINDOW_ID_INVALID; } + +static inline bool workspace_id_invalid(workspace_id_t workspace_id) { + return workspace_id == ZDWM_WORKSPACE_ID_INVALID; +}