Skip to content

Commit

Permalink
koekeishiya#571 properly support float for windows that are forced to…
Browse files Browse the repository at this point in the history
… tile through rules
  • Loading branch information
koekeishiya authored and unrevre committed Jun 12, 2020
1 parent 73734df commit 00e4ae5
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
- Don't modify the properties of AXUnknown and AXPopover windows [#535](https:/koekeishiya/yabai/issues/535)
- The window attribute *visible* should be 0 for minimized windows [#569](https:/koekeishiya/yabai/issues/569)
- Prevent *mouse_action move* from placing the y-coordinate of a window outside valid display boundaries [#570](https:/koekeishiya/yabai/issues/570)
- Properly allow the user to float windows that are forced to tile using window rules (manage=on) [#571](https:/koekeishiya/yabai/issues/571)

## [3.1.2] - 2020-06-09
### Changed
Expand Down
11 changes: 5 additions & 6 deletions src/window_manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,7 @@ void window_manager_apply_rule_to_window(struct space_manager *sm, struct window
window->rule_manage = true;
window->is_floating = false;
window_manager_make_floating(wm, window, false);
if ((window_manager_should_manage_window(window)) &&
(!window_manager_find_managed_window(wm, window))) {
if ((window_manager_should_manage_window(window)) && (!window_manager_find_managed_window(wm, window))) {
struct view *view = space_manager_tile_window_on_space(sm, window, space_manager_active_space());
window_manager_add_managed_window(wm, window, view);
}
Expand Down Expand Up @@ -293,13 +292,13 @@ void window_manager_center_mouse(struct window_manager *wm, struct window *windo

bool window_manager_should_manage_window(struct window *window)
{
if (window->rule_manage) return true;
if (window->is_floating) return false;
if (window_is_sticky(window)) return false;
if (window->rule_manage) return true;

return ((window_level_is_standard(window)) &&
(window_is_standard(window)) &&
(window_can_move(window)) &&
(!window_is_sticky(window)) &&
(!window->is_floating));
(window_can_move(window)));
}

struct view *window_manager_find_managed_window(struct window_manager *wm, struct window *window)
Expand Down

0 comments on commit 00e4ae5

Please sign in to comment.