fix(core/window): 添加设置窗口 floating 状态的限制条件

- 不能取消 fixed_size 和 sticky 状态窗口的 floating 状态
- 简化 window_need_layout 中浮动窗口不参加自动布局判断逻辑
This commit is contained in:
2026-04-22 17:39:12 +08:00
parent fd843dc826
commit 3121b49d1b

View File

@@ -43,6 +43,8 @@ void window_set_geometry_mode(
}
void window_set_floating(window_t *window, bool floating) {
if (!floating && (window->fixed_size || window->sticky)) return;
window->floating = floating;
if (floating) window->float_rect = window->frame_rect;
}
@@ -121,9 +123,7 @@ void window_take_metadata(
}
bool window_need_layout(const window_t *window) {
if (window->sticky || window->floating) {
return false;
}
if (window->floating) return false;
switch (window->geometry_mode) {
case ZDWM_GEOMETRY_FULLSCREEN: