diff --git a/src/core/state.c b/src/core/state.c index ab37056..a80a6e2 100644 --- a/src/core/state.c +++ b/src/core/state.c @@ -355,6 +355,7 @@ const window_t *state_window_add(state_t *state, const window_info_t *info) { window_set_urgent(window, info->urgent); window_set_fixed_size(window, info->fixed_size); window_set_frame_rect(window, info->frame_rect); + window_set_float_rect(window, info->frame_rect); window_set_title(window, info->title); window_set_app_id(window, info->app_id); window_set_role(window, info->role); diff --git a/src/core/window.c b/src/core/window.c index 3f66a01..054e19d 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -54,7 +54,8 @@ void window_set_floating(window_t *window, bool floating) { if (floating == window->floating) return; window->floating = floating; - if (floating) window->float_rect = window->frame_rect; + if (floating) window_set_frame_rect(window, window->float_rect); + else window_set_float_rect(window, window->frame_rect); } void window_set_sticky(window_t *window, bool sticky) {