mirror of
https://github.com/swaywm/sway.git
synced 2024-12-28 07:56:31 +01:00
Correctly handle moving between fullscreen views
If focus would move in an output with a fullscreen view, it always leaves the output. If focus would enter an output with a fullscreen view, it always focuses the fullscreened view.
This commit is contained in:
parent
d361ce656d
commit
2f89b7084d
1 changed files with 13 additions and 0 deletions
|
@ -579,6 +579,19 @@ swayc_t *get_swayc_in_direction_under(swayc_t *container, enum movement_directio
|
|||
// output might border to multiple outputs).
|
||||
struct wlc_point abs_pos;
|
||||
get_absolute_center_position(container, &abs_pos);
|
||||
|
||||
if (container->type == C_VIEW && swayc_is_fullscreen(container)) {
|
||||
sway_log(L_DEBUG, "Moving from fullscreen view, skipping to output");
|
||||
container = swayc_parent_by_type(container, C_OUTPUT);
|
||||
get_absolute_center_position(container, &abs_pos);
|
||||
return swayc_adjacent_output(container, dir, &abs_pos, true);
|
||||
}
|
||||
|
||||
if (container->type == C_WORKSPACE && container->fullscreen) {
|
||||
sway_log(L_DEBUG, "Moving to fullscreen view");
|
||||
return container->fullscreen;
|
||||
}
|
||||
|
||||
while (true) {
|
||||
// Test if we can even make a difference here
|
||||
bool can_move = false;
|
||||
|
|
Loading…
Reference in a new issue