From 71f050c2f3e382f4f9d1025d18f777146df203d3 Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Tue, 23 Jun 2026 02:43:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(window):=20=E6=B7=BB=E5=8A=A0=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E7=AA=97=E5=8F=A3=E8=83=BD=E5=90=A6=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=E7=9A=84=E8=BE=85=E5=8A=A9=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/policy.c | 1 + src/core/window.c | 7 +++++++ src/core/window.h | 1 + 3 files changed, 9 insertions(+) diff --git a/src/core/policy.c b/src/core/policy.c index a8475e3..a3ea72f 100644 --- a/src/core/policy.c +++ b/src/core/policy.c @@ -540,6 +540,7 @@ static void route_pointer_motion( } break; case ZDWM_WINDOW_INTERACTION_RESIZE: { auto window = state_window_get(ctx->state, window_id); + if (!window_can_resize(window)) break; auto rect = interaction->origin_rect; auto start = interaction->start_coordinate; diff --git a/src/core/window.c b/src/core/window.c index 8d74c16..d6d5ff7 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -171,3 +171,10 @@ bool window_should_fix_size(const window_t *window) { auto min = window->min_size; return max.width == min.width && max.height == min.height; } + +bool window_can_resize(const window_t *window) { + if (window->fullscreen || window->maximized) return false; + if (window_should_fix_size(window)) return false; + + return true; +} diff --git a/src/core/window.h b/src/core/window.h index 2bf70b2..fab3396 100644 --- a/src/core/window.h +++ b/src/core/window.h @@ -130,3 +130,4 @@ bool window_need_move(const window_t *window, int32_t x, int32_t y); bool window_need_resize(const window_t *window, int32_t width, int32_t height); bool window_should_has_border(const window_t *window); bool window_should_fix_size(const window_t *window); +bool window_can_resize(const window_t *window);