input: special case Focus/Move actions for fullscreen windows

This commit is contained in:
Victoria Brekenfeld 2023-02-13 20:35:11 +01:00
parent 173f2ae051
commit 1a05121498

View file

@ -822,10 +822,14 @@ impl State {
let current_output = seat.active_output(); let current_output = seat.active_output();
let workspace = self.common.shell.active_space_mut(&current_output); let workspace = self.common.shell.active_space_mut(&current_output);
let focus_stack = workspace.focus_stack.get(seat); let focus_stack = workspace.focus_stack.get(seat);
match workspace let mut result = workspace
.tiling_layer .tiling_layer
.next_focus(focus, seat, focus_stack.iter()) .next_focus(focus, seat, focus_stack.iter());
{ if workspace.get_fullscreen(&current_output).is_some() {
result = FocusResult::None;
}
match result {
FocusResult::None => { FocusResult::None => {
// TODO: Handle Workspace orientation // TODO: Handle Workspace orientation
match focus { match focus {
@ -854,6 +858,10 @@ impl State {
Action::Move(direction) => { Action::Move(direction) => {
let current_output = seat.active_output(); let current_output = seat.active_output();
let workspace = self.common.shell.active_space_mut(&current_output); let workspace = self.common.shell.active_space_mut(&current_output);
if workspace.get_fullscreen(&current_output).is_some() {
return; // TODO, is this what we want? How do we indicate the switch?
}
if let Some(_move_further) = if let Some(_move_further) =
workspace.tiling_layer.move_current_window(direction, seat) workspace.tiling_layer.move_current_window(direction, seat)
{ {