From c5fffd6e2c48aa7fb8b45b8bdcd972bbd8ce900b Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Fri, 29 Nov 2024 21:11:02 +0300 Subject: Initial WIP floating window implementation --- niri-config/src/lib.rs | 15 + niri-ipc/src/lib.rs | 10 + niri-visual-tests/src/cases/layout.rs | 23 +- resources/default-config.kdl | 4 + src/handlers/compositor.rs | 27 +- src/handlers/xdg_shell.rs | 13 +- src/input/mod.rs | 19 + src/layout/floating.rs | 815 +++++++++++++++++++++ src/layout/mod.rs | 236 +++++- src/layout/monitor.rs | 53 +- src/layout/scrolling.rs | 41 +- src/layout/workspace.rs | 412 ++++++++++- src/niri.rs | 2 +- ...check_target_output_and_workspace@fsF-spA1.snap | 2 +- ...check_target_output_and_workspace@fsF-spA2.snap | 2 +- ...check_target_output_and_workspace@fsF-spB1.snap | 4 +- ...check_target_output_and_workspace@fsF-spB2.snap | 2 +- ...target_output_and_workspace@fsF-wfsA1-spA1.snap | 2 +- ...target_output_and_workspace@fsF-wfsA1-spA2.snap | 2 +- ...target_output_and_workspace@fsF-wfsA1-spB1.snap | 4 +- ...target_output_and_workspace@fsF-wfsA1-spB2.snap | 4 +- ...target_output_and_workspace@fsF-wfsA2-spA1.snap | 2 +- ...target_output_and_workspace@fsF-wfsA2-spA2.snap | 1 + ...target_output_and_workspace@fsF-wfsA2-spB1.snap | 4 +- ...target_output_and_workspace@fsF-wfsA2-spB2.snap | 3 +- ...target_output_and_workspace@fsF-wfsAA-spA1.snap | 4 +- ...target_output_and_workspace@fsF-wfsAA-spA2.snap | 4 +- ...target_output_and_workspace@fsF-wfsAA-spB1.snap | 6 +- ...target_output_and_workspace@fsF-wfsAA-spB2.snap | 4 +- ...target_output_and_workspace@fsF-wfsAN-spA1.snap | 2 +- ...target_output_and_workspace@fsF-wfsAN-spA2.snap | 2 +- ...target_output_and_workspace@fsF-wfsAN-spB1.snap | 4 +- ...target_output_and_workspace@fsF-wfsAN-spB2.snap | 3 +- ...target_output_and_workspace@fsF-wfsB1-spA1.snap | 2 +- ...target_output_and_workspace@fsF-wfsB1-spA2.snap | 2 +- ...target_output_and_workspace@fsF-wfsB1-spB1.snap | 4 +- ...target_output_and_workspace@fsF-wfsB1-spB2.snap | 4 +- ...target_output_and_workspace@fsF-wfsB2-spA1.snap | 1 + ...target_output_and_workspace@fsF-wfsB2-spA2.snap | 1 + ...target_output_and_workspace@fsF-wfsB2-spB1.snap | 2 +- ...target_output_and_workspace@fsF-wfsB2-spB2.snap | 2 +- ...target_output_and_workspace@fsF-wfsBN-spA1.snap | 2 +- ...target_output_and_workspace@fsF-wfsBN-spA2.snap | 2 +- ...target_output_and_workspace@fsF-wfsBN-spB1.snap | 4 +- ...target_output_and_workspace@fsF-wfsBN-spB2.snap | 2 +- ...target_output_and_workspace@fsF-wfsBU-spA1.snap | 2 +- ...target_output_and_workspace@fsF-wfsBU-spA2.snap | 2 +- ...target_output_and_workspace@fsF-wfsBU-spB1.snap | 4 +- ...target_output_and_workspace@fsF-wfsBU-spB2.snap | 2 +- ...check_target_output_and_workspace@fsT-spA1.snap | 2 +- ...check_target_output_and_workspace@fsT-spA2.snap | 2 +- ...check_target_output_and_workspace@fsT-spB1.snap | 4 +- ...check_target_output_and_workspace@fsT-spB2.snap | 3 +- ...target_output_and_workspace@fsT-wfsA1-spA1.snap | 2 +- ...target_output_and_workspace@fsT-wfsA1-spA2.snap | 2 +- ...target_output_and_workspace@fsT-wfsA1-spB1.snap | 4 +- ...target_output_and_workspace@fsT-wfsA1-spB2.snap | 4 +- ...target_output_and_workspace@fsT-wfsA2-spA1.snap | 2 +- ...target_output_and_workspace@fsT-wfsA2-spA2.snap | 1 + ...target_output_and_workspace@fsT-wfsA2-spB1.snap | 4 +- ...target_output_and_workspace@fsT-wfsA2-spB2.snap | 3 +- ...target_output_and_workspace@fsT-wfsAA-spA1.snap | 4 +- ...target_output_and_workspace@fsT-wfsAA-spA2.snap | 4 +- ...target_output_and_workspace@fsT-wfsAA-spB1.snap | 6 +- ...target_output_and_workspace@fsT-wfsAA-spB2.snap | 4 +- ...target_output_and_workspace@fsT-wfsAN-spA1.snap | 2 +- ...target_output_and_workspace@fsT-wfsAN-spA2.snap | 2 +- ...target_output_and_workspace@fsT-wfsAN-spB1.snap | 4 +- ...target_output_and_workspace@fsT-wfsAN-spB2.snap | 3 +- ...target_output_and_workspace@fsT-wfsB1-spA1.snap | 2 +- ...target_output_and_workspace@fsT-wfsB1-spA2.snap | 2 +- ...target_output_and_workspace@fsT-wfsB1-spB1.snap | 4 +- ...target_output_and_workspace@fsT-wfsB1-spB2.snap | 4 +- ...target_output_and_workspace@fsT-wfsB2-spA1.snap | 1 + ...target_output_and_workspace@fsT-wfsB2-spA2.snap | 1 + ...target_output_and_workspace@fsT-wfsB2-spB1.snap | 3 +- ...target_output_and_workspace@fsT-wfsB2-spB2.snap | 3 +- ...target_output_and_workspace@fsT-wfsBN-spA1.snap | 2 +- ...target_output_and_workspace@fsT-wfsBN-spA2.snap | 2 +- ...target_output_and_workspace@fsT-wfsBN-spB1.snap | 4 +- ...target_output_and_workspace@fsT-wfsBN-spB2.snap | 3 +- ...target_output_and_workspace@fsT-wfsBU-spA1.snap | 2 +- ...target_output_and_workspace@fsT-wfsBU-spA2.snap | 2 +- ...target_output_and_workspace@fsT-wfsBU-spB1.snap | 4 +- ...target_output_and_workspace@fsT-wfsBU-spB2.snap | 3 +- ..._target_output_and_workspace@out1-fsF-spA1.snap | 2 +- ..._target_output_and_workspace@out1-fsF-spA2.snap | 2 +- ..._target_output_and_workspace@out1-fsF-spB1.snap | 4 +- ..._target_output_and_workspace@out1-fsF-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsA1-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsA1-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsA1-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsA1-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsA2-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsA2-spA2.snap | 1 + ...t_output_and_workspace@out1-fsF-wfsA2-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsA2-spB2.snap | 3 +- ...t_output_and_workspace@out1-fsF-wfsAA-spA1.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsAA-spA2.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsAA-spB1.snap | 6 +- ...t_output_and_workspace@out1-fsF-wfsAA-spB2.snap | 6 +- ...t_output_and_workspace@out1-fsF-wfsAN-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsAN-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsAN-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsAN-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsB1-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsB1-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsB1-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsB1-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsB2-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsB2-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsB2-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsB2-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsBN-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsBN-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsBN-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsBN-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsBU-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsBU-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsF-wfsBU-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsF-wfsBU-spB2.snap | 4 +- ..._target_output_and_workspace@out1-fsT-spA1.snap | 2 +- ..._target_output_and_workspace@out1-fsT-spA2.snap | 2 +- ..._target_output_and_workspace@out1-fsT-spB1.snap | 4 +- ..._target_output_and_workspace@out1-fsT-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsA1-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsA1-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsA1-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsA1-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsA2-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsA2-spA2.snap | 1 + ...t_output_and_workspace@out1-fsT-wfsA2-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsA2-spB2.snap | 3 +- ...t_output_and_workspace@out1-fsT-wfsAA-spA1.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsAA-spA2.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsAA-spB1.snap | 6 +- ...t_output_and_workspace@out1-fsT-wfsAA-spB2.snap | 6 +- ...t_output_and_workspace@out1-fsT-wfsAN-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsAN-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsAN-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsAN-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsB1-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsB1-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsB1-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsB1-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsB2-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsB2-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsB2-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsB2-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsBN-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsBN-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsBN-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsBN-spB2.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsBU-spA1.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsBU-spA2.snap | 2 +- ...t_output_and_workspace@out1-fsT-wfsBU-spB1.snap | 4 +- ...t_output_and_workspace@out1-fsT-wfsBU-spB2.snap | 4 +- ...heck_target_output_and_workspace@out1-spA1.snap | 2 +- ...heck_target_output_and_workspace@out1-spA2.snap | 2 +- ...heck_target_output_and_workspace@out1-spB1.snap | 4 +- ...heck_target_output_and_workspace@out1-spB2.snap | 4 +- ...arget_output_and_workspace@out1-wfsA1-spA1.snap | 2 +- ...arget_output_and_workspace@out1-wfsA1-spA2.snap | 2 +- ...arget_output_and_workspace@out1-wfsA1-spB1.snap | 4 +- ...arget_output_and_workspace@out1-wfsA1-spB2.snap | 4 +- ...arget_output_and_workspace@out1-wfsA2-spA1.snap | 2 +- ...arget_output_and_workspace@out1-wfsA2-spA2.snap | 1 + ...arget_output_and_workspace@out1-wfsA2-spB1.snap | 4 +- ...arget_output_and_workspace@out1-wfsA2-spB2.snap | 3 +- ...arget_output_and_workspace@out1-wfsAA-spA1.snap | 4 +- ...arget_output_and_workspace@out1-wfsAA-spA2.snap | 4 +- ...arget_output_and_workspace@out1-wfsAA-spB1.snap | 6 +- ...arget_output_and_workspace@out1-wfsAA-spB2.snap | 6 +- ...arget_output_and_workspace@out1-wfsAN-spA1.snap | 2 +- ...arget_output_and_workspace@out1-wfsAN-spA2.snap | 2 +- ...arget_output_and_workspace@out1-wfsAN-spB1.snap | 4 +- ...arget_output_and_workspace@out1-wfsAN-spB2.snap | 4 +- ...arget_output_and_workspace@out1-wfsB1-spA1.snap | 2 +- ...arget_output_and_workspace@out1-wfsB1-spA2.snap | 2 +- ...arget_output_and_workspace@out1-wfsB1-spB1.snap | 4 +- ...arget_output_and_workspace@out1-wfsB1-spB2.snap | 4 +- ...arget_output_and_workspace@out1-wfsB2-spA1.snap | 2 +- ...arget_output_and_workspace@out1-wfsB2-spA2.snap | 2 +- ...arget_output_and_workspace@out1-wfsB2-spB1.snap | 4 +- ...arget_output_and_workspace@out1-wfsB2-spB2.snap | 4 +- ...arget_output_and_workspace@out1-wfsBN-spA1.snap | 2 +- ...arget_output_and_workspace@out1-wfsBN-spA2.snap | 2 +- ...arget_output_and_workspace@out1-wfsBN-spB1.snap | 4 +- ...arget_output_and_workspace@out1-wfsBN-spB2.snap | 4 +- ...arget_output_and_workspace@out1-wfsBU-spA1.snap | 2 +- ...arget_output_and_workspace@out1-wfsBU-spA2.snap | 2 +- ...arget_output_and_workspace@out1-wfsBU-spB1.snap | 4 +- ...arget_output_and_workspace@out1-wfsBU-spB2.snap | 4 +- ..._target_output_and_workspace@out2-fsF-spA1.snap | 1 + ..._target_output_and_workspace@out2-fsF-spA2.snap | 1 + ..._target_output_and_workspace@out2-fsF-spB1.snap | 2 +- ..._target_output_and_workspace@out2-fsF-spB2.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsA1-spA1.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsA1-spA2.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsA1-spB1.snap | 4 +- ...t_output_and_workspace@out2-fsF-wfsA1-spB2.snap | 4 +- ...t_output_and_workspace@out2-fsF-wfsA2-spA1.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsA2-spA2.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsA2-spB1.snap | 3 +- ...t_output_and_workspace@out2-fsF-wfsA2-spB2.snap | 3 +- ...t_output_and_workspace@out2-fsF-wfsAA-spA1.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsAA-spA2.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsAA-spB1.snap | 4 +- ...t_output_and_workspace@out2-fsF-wfsAA-spB2.snap | 4 +- ...t_output_and_workspace@out2-fsF-wfsAN-spA1.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsAN-spA2.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsAN-spB1.snap | 3 +- ...t_output_and_workspace@out2-fsF-wfsAN-spB2.snap | 3 +- ...t_output_and_workspace@out2-fsF-wfsB1-spA1.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsB1-spA2.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsB1-spB1.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsB1-spB2.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsB2-spA1.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsB2-spA2.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsB2-spB1.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsB2-spB2.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsBN-spA1.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsBN-spA2.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsBN-spB1.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsBN-spB2.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsBU-spA1.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsBU-spA2.snap | 1 + ...t_output_and_workspace@out2-fsF-wfsBU-spB1.snap | 2 +- ...t_output_and_workspace@out2-fsF-wfsBU-spB2.snap | 2 +- ..._target_output_and_workspace@out2-fsT-spA1.snap | 1 + ..._target_output_and_workspace@out2-fsT-spA2.snap | 1 + ..._target_output_and_workspace@out2-fsT-spB1.snap | 3 +- ..._target_output_and_workspace@out2-fsT-spB2.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsA1-spA1.snap | 2 +- ...t_output_and_workspace@out2-fsT-wfsA1-spA2.snap | 2 +- ...t_output_and_workspace@out2-fsT-wfsA1-spB1.snap | 4 +- ...t_output_and_workspace@out2-fsT-wfsA1-spB2.snap | 4 +- ...t_output_and_workspace@out2-fsT-wfsA2-spA1.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsA2-spA2.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsA2-spB1.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsA2-spB2.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsAA-spA1.snap | 2 +- ...t_output_and_workspace@out2-fsT-wfsAA-spA2.snap | 2 +- ...t_output_and_workspace@out2-fsT-wfsAA-spB1.snap | 4 +- ...t_output_and_workspace@out2-fsT-wfsAA-spB2.snap | 4 +- ...t_output_and_workspace@out2-fsT-wfsAN-spA1.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsAN-spA2.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsAN-spB1.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsAN-spB2.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsB1-spA1.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsB1-spA2.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsB1-spB1.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsB1-spB2.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsB2-spA1.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsB2-spA2.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsB2-spB1.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsB2-spB2.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsBN-spA1.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsBN-spA2.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsBN-spB1.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsBN-spB2.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsBU-spA1.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsBU-spA2.snap | 1 + ...t_output_and_workspace@out2-fsT-wfsBU-spB1.snap | 3 +- ...t_output_and_workspace@out2-fsT-wfsBU-spB2.snap | 3 +- ...heck_target_output_and_workspace@out2-spA1.snap | 1 + ...heck_target_output_and_workspace@out2-spA2.snap | 1 + ...heck_target_output_and_workspace@out2-spB1.snap | 2 +- ...heck_target_output_and_workspace@out2-spB2.snap | 2 +- ...arget_output_and_workspace@out2-wfsA1-spA1.snap | 2 +- ...arget_output_and_workspace@out2-wfsA1-spA2.snap | 2 +- ...arget_output_and_workspace@out2-wfsA1-spB1.snap | 4 +- ...arget_output_and_workspace@out2-wfsA1-spB2.snap | 4 +- ...arget_output_and_workspace@out2-wfsA2-spA1.snap | 1 + ...arget_output_and_workspace@out2-wfsA2-spA2.snap | 1 + ...arget_output_and_workspace@out2-wfsA2-spB1.snap | 3 +- ...arget_output_and_workspace@out2-wfsA2-spB2.snap | 3 +- ...arget_output_and_workspace@out2-wfsAA-spA1.snap | 2 +- ...arget_output_and_workspace@out2-wfsAA-spA2.snap | 2 +- ...arget_output_and_workspace@out2-wfsAA-spB1.snap | 4 +- ...arget_output_and_workspace@out2-wfsAA-spB2.snap | 4 +- ...arget_output_and_workspace@out2-wfsAN-spA1.snap | 1 + ...arget_output_and_workspace@out2-wfsAN-spA2.snap | 1 + ...arget_output_and_workspace@out2-wfsAN-spB1.snap | 3 +- ...arget_output_and_workspace@out2-wfsAN-spB2.snap | 3 +- ...arget_output_and_workspace@out2-wfsB1-spA1.snap | 1 + ...arget_output_and_workspace@out2-wfsB1-spA2.snap | 1 + ...arget_output_and_workspace@out2-wfsB1-spB1.snap | 3 +- ...arget_output_and_workspace@out2-wfsB1-spB2.snap | 3 +- ...arget_output_and_workspace@out2-wfsB2-spA1.snap | 1 + ...arget_output_and_workspace@out2-wfsB2-spA2.snap | 1 + ...arget_output_and_workspace@out2-wfsB2-spB1.snap | 3 +- ...arget_output_and_workspace@out2-wfsB2-spB2.snap | 3 +- ...arget_output_and_workspace@out2-wfsBN-spA1.snap | 1 + ...arget_output_and_workspace@out2-wfsBN-spA2.snap | 1 + ...arget_output_and_workspace@out2-wfsBN-spB1.snap | 3 +- ...arget_output_and_workspace@out2-wfsBN-spB2.snap | 3 +- ...arget_output_and_workspace@out2-wfsBU-spA1.snap | 1 + ...arget_output_and_workspace@out2-wfsBU-spA2.snap | 1 + ...arget_output_and_workspace@out2-wfsBU-spB1.snap | 2 +- ...arget_output_and_workspace@out2-wfsBU-spB2.snap | 2 +- ...ng__check_target_output_and_workspace@spA1.snap | 2 +- ...ng__check_target_output_and_workspace@spA2.snap | 2 +- ...ng__check_target_output_and_workspace@spB1.snap | 4 +- ...ng__check_target_output_and_workspace@spB2.snap | 2 +- ...eck_target_output_and_workspace@wfsA1-spA1.snap | 2 +- ...eck_target_output_and_workspace@wfsA1-spA2.snap | 2 +- ...eck_target_output_and_workspace@wfsA1-spB1.snap | 4 +- ...eck_target_output_and_workspace@wfsA1-spB2.snap | 4 +- ...eck_target_output_and_workspace@wfsA2-spA1.snap | 2 +- ...eck_target_output_and_workspace@wfsA2-spA2.snap | 1 + ...eck_target_output_and_workspace@wfsA2-spB1.snap | 4 +- ...eck_target_output_and_workspace@wfsA2-spB2.snap | 3 +- ...eck_target_output_and_workspace@wfsAA-spA1.snap | 4 +- ...eck_target_output_and_workspace@wfsAA-spA2.snap | 4 +- ...eck_target_output_and_workspace@wfsAA-spB1.snap | 6 +- ...eck_target_output_and_workspace@wfsAA-spB2.snap | 4 +- ...eck_target_output_and_workspace@wfsAN-spA1.snap | 2 +- ...eck_target_output_and_workspace@wfsAN-spA2.snap | 2 +- ...eck_target_output_and_workspace@wfsAN-spB1.snap | 4 +- ...eck_target_output_and_workspace@wfsAN-spB2.snap | 3 +- ...eck_target_output_and_workspace@wfsB1-spA1.snap | 2 +- ...eck_target_output_and_workspace@wfsB1-spA2.snap | 2 +- ...eck_target_output_and_workspace@wfsB1-spB1.snap | 4 +- ...eck_target_output_and_workspace@wfsB1-spB2.snap | 4 +- ...eck_target_output_and_workspace@wfsB2-spA1.snap | 1 + ...eck_target_output_and_workspace@wfsB2-spA2.snap | 1 + ...eck_target_output_and_workspace@wfsB2-spB1.snap | 3 +- ...eck_target_output_and_workspace@wfsB2-spB2.snap | 3 +- ...eck_target_output_and_workspace@wfsBN-spA1.snap | 2 +- ...eck_target_output_and_workspace@wfsBN-spA2.snap | 2 +- ...eck_target_output_and_workspace@wfsBN-spB1.snap | 4 +- ...eck_target_output_and_workspace@wfsBN-spB2.snap | 3 +- ...eck_target_output_and_workspace@wfsBU-spA1.snap | 2 +- ...eck_target_output_and_workspace@wfsBU-spA2.snap | 2 +- ...eck_target_output_and_workspace@wfsBU-spB1.snap | 4 +- ...eck_target_output_and_workspace@wfsBU-spB2.snap | 2 +- ...k_target_output_and_workspace@ws1-fsF-spA1.snap | 2 +- ...k_target_output_and_workspace@ws1-fsF-spA2.snap | 2 +- ...k_target_output_and_workspace@ws1-fsF-spB1.snap | 4 +- ...k_target_output_and_workspace@ws1-fsF-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsA1-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsA1-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsA1-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsA1-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsA2-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsA2-spA2.snap | 1 + ...et_output_and_workspace@ws1-fsF-wfsA2-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsA2-spB2.snap | 3 +- ...et_output_and_workspace@ws1-fsF-wfsAA-spA1.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsAA-spA2.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsAA-spB1.snap | 6 +- ...et_output_and_workspace@ws1-fsF-wfsAA-spB2.snap | 6 +- ...et_output_and_workspace@ws1-fsF-wfsAN-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsAN-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsAN-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsAN-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsB1-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsB1-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsB1-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsB1-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsB2-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsB2-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsB2-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsB2-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsBN-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsBN-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsBN-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsBN-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsBU-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsBU-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsF-wfsBU-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsF-wfsBU-spB2.snap | 4 +- ...k_target_output_and_workspace@ws1-fsT-spA1.snap | 2 +- ...k_target_output_and_workspace@ws1-fsT-spA2.snap | 2 +- ...k_target_output_and_workspace@ws1-fsT-spB1.snap | 4 +- ...k_target_output_and_workspace@ws1-fsT-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsA1-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsA1-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsA1-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsA1-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsA2-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsA2-spA2.snap | 1 + ...et_output_and_workspace@ws1-fsT-wfsA2-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsA2-spB2.snap | 3 +- ...et_output_and_workspace@ws1-fsT-wfsAA-spA1.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsAA-spA2.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsAA-spB1.snap | 6 +- ...et_output_and_workspace@ws1-fsT-wfsAA-spB2.snap | 6 +- ...et_output_and_workspace@ws1-fsT-wfsAN-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsAN-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsAN-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsAN-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsB1-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsB1-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsB1-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsB1-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsB2-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsB2-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsB2-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsB2-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsBN-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsBN-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsBN-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsBN-spB2.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsBU-spA1.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsBU-spA2.snap | 2 +- ...et_output_and_workspace@ws1-fsT-wfsBU-spB1.snap | 4 +- ...et_output_and_workspace@ws1-fsT-wfsBU-spB2.snap | 4 +- ...get_output_and_workspace@ws1-out1-fsF-spA1.snap | 2 +- ...get_output_and_workspace@ws1-out1-fsF-spA2.snap | 2 +- ...get_output_and_workspace@ws1-out1-fsF-spB1.snap | 4 +- ...get_output_and_workspace@ws1-out1-fsF-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsA1-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsA1-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsA1-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsA1-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsA2-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsA2-spA2.snap | 1 + ...tput_and_workspace@ws1-out1-fsF-wfsA2-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsA2-spB2.snap | 3 +- ...tput_and_workspace@ws1-out1-fsF-wfsAA-spA1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsAA-spA2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsAA-spB1.snap | 6 +- ...tput_and_workspace@ws1-out1-fsF-wfsAA-spB2.snap | 6 +- ...tput_and_workspace@ws1-out1-fsF-wfsAN-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsAN-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsAN-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsAN-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsB1-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsB1-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsB1-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsB1-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsB2-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsB2-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsB2-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsB2-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsBN-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsBN-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsBN-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsBN-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsBU-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsBU-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsF-wfsBU-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsF-wfsBU-spB2.snap | 4 +- ...get_output_and_workspace@ws1-out1-fsT-spA1.snap | 2 +- ...get_output_and_workspace@ws1-out1-fsT-spA2.snap | 2 +- ...get_output_and_workspace@ws1-out1-fsT-spB1.snap | 4 +- ...get_output_and_workspace@ws1-out1-fsT-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsA1-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsA1-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsA1-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsA1-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsA2-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsA2-spA2.snap | 1 + ...tput_and_workspace@ws1-out1-fsT-wfsA2-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsA2-spB2.snap | 3 +- ...tput_and_workspace@ws1-out1-fsT-wfsAA-spA1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsAA-spA2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsAA-spB1.snap | 6 +- ...tput_and_workspace@ws1-out1-fsT-wfsAA-spB2.snap | 6 +- ...tput_and_workspace@ws1-out1-fsT-wfsAN-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsAN-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsAN-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsAN-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsB1-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsB1-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsB1-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsB1-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsB2-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsB2-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsB2-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsB2-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsBN-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsBN-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsBN-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsBN-spB2.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsBU-spA1.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsBU-spA2.snap | 2 +- ...tput_and_workspace@ws1-out1-fsT-wfsBU-spB1.snap | 4 +- ...tput_and_workspace@ws1-out1-fsT-wfsBU-spB2.snap | 4 +- ..._target_output_and_workspace@ws1-out1-spA1.snap | 2 +- ..._target_output_and_workspace@ws1-out1-spA2.snap | 2 +- ..._target_output_and_workspace@ws1-out1-spB1.snap | 4 +- ..._target_output_and_workspace@ws1-out1-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsA1-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsA1-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsA1-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsA1-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsA2-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsA2-spA2.snap | 1 + ...t_output_and_workspace@ws1-out1-wfsA2-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsA2-spB2.snap | 3 +- ...t_output_and_workspace@ws1-out1-wfsAA-spA1.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsAA-spA2.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsAA-spB1.snap | 6 +- ...t_output_and_workspace@ws1-out1-wfsAA-spB2.snap | 6 +- ...t_output_and_workspace@ws1-out1-wfsAN-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsAN-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsAN-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsAN-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsB1-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsB1-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsB1-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsB1-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsB2-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsB2-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsB2-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsB2-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsBN-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsBN-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsBN-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsBN-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsBU-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsBU-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out1-wfsBU-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out1-wfsBU-spB2.snap | 4 +- ...get_output_and_workspace@ws1-out2-fsF-spA1.snap | 2 +- ...get_output_and_workspace@ws1-out2-fsF-spA2.snap | 2 +- ...get_output_and_workspace@ws1-out2-fsF-spB1.snap | 4 +- ...get_output_and_workspace@ws1-out2-fsF-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsA1-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsA1-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsA1-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsA1-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsA2-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsA2-spA2.snap | 1 + ...tput_and_workspace@ws1-out2-fsF-wfsA2-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsA2-spB2.snap | 3 +- ...tput_and_workspace@ws1-out2-fsF-wfsAA-spA1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsAA-spA2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsAA-spB1.snap | 6 +- ...tput_and_workspace@ws1-out2-fsF-wfsAA-spB2.snap | 6 +- ...tput_and_workspace@ws1-out2-fsF-wfsAN-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsAN-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsAN-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsAN-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsB1-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsB1-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsB1-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsB1-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsB2-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsB2-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsB2-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsB2-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsBN-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsBN-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsBN-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsBN-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsBU-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsBU-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsF-wfsBU-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsF-wfsBU-spB2.snap | 4 +- ...get_output_and_workspace@ws1-out2-fsT-spA1.snap | 2 +- ...get_output_and_workspace@ws1-out2-fsT-spA2.snap | 2 +- ...get_output_and_workspace@ws1-out2-fsT-spB1.snap | 4 +- ...get_output_and_workspace@ws1-out2-fsT-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsA1-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsA1-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsA1-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsA1-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsA2-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsA2-spA2.snap | 1 + ...tput_and_workspace@ws1-out2-fsT-wfsA2-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsA2-spB2.snap | 3 +- ...tput_and_workspace@ws1-out2-fsT-wfsAA-spA1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsAA-spA2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsAA-spB1.snap | 6 +- ...tput_and_workspace@ws1-out2-fsT-wfsAA-spB2.snap | 6 +- ...tput_and_workspace@ws1-out2-fsT-wfsAN-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsAN-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsAN-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsAN-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsB1-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsB1-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsB1-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsB1-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsB2-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsB2-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsB2-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsB2-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsBN-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsBN-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsBN-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsBN-spB2.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsBU-spA1.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsBU-spA2.snap | 2 +- ...tput_and_workspace@ws1-out2-fsT-wfsBU-spB1.snap | 4 +- ...tput_and_workspace@ws1-out2-fsT-wfsBU-spB2.snap | 4 +- ..._target_output_and_workspace@ws1-out2-spA1.snap | 2 +- ..._target_output_and_workspace@ws1-out2-spA2.snap | 2 +- ..._target_output_and_workspace@ws1-out2-spB1.snap | 4 +- ..._target_output_and_workspace@ws1-out2-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsA1-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsA1-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsA1-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsA1-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsA2-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsA2-spA2.snap | 1 + ...t_output_and_workspace@ws1-out2-wfsA2-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsA2-spB2.snap | 3 +- ...t_output_and_workspace@ws1-out2-wfsAA-spA1.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsAA-spA2.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsAA-spB1.snap | 6 +- ...t_output_and_workspace@ws1-out2-wfsAA-spB2.snap | 6 +- ...t_output_and_workspace@ws1-out2-wfsAN-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsAN-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsAN-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsAN-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsB1-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsB1-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsB1-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsB1-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsB2-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsB2-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsB2-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsB2-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsBN-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsBN-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsBN-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsBN-spB2.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsBU-spA1.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsBU-spA2.snap | 2 +- ...t_output_and_workspace@ws1-out2-wfsBU-spB1.snap | 4 +- ...t_output_and_workspace@ws1-out2-wfsBU-spB2.snap | 4 +- ...check_target_output_and_workspace@ws1-spA1.snap | 2 +- ...check_target_output_and_workspace@ws1-spA2.snap | 2 +- ...check_target_output_and_workspace@ws1-spB1.snap | 4 +- ...check_target_output_and_workspace@ws1-spB2.snap | 4 +- ...target_output_and_workspace@ws1-wfsA1-spA1.snap | 2 +- ...target_output_and_workspace@ws1-wfsA1-spA2.snap | 2 +- ...target_output_and_workspace@ws1-wfsA1-spB1.snap | 4 +- ...target_output_and_workspace@ws1-wfsA1-spB2.snap | 4 +- ...target_output_and_workspace@ws1-wfsA2-spA1.snap | 2 +- ...target_output_and_workspace@ws1-wfsA2-spA2.snap | 1 + ...target_output_and_workspace@ws1-wfsA2-spB1.snap | 4 +- ...target_output_and_workspace@ws1-wfsA2-spB2.snap | 3 +- ...target_output_and_workspace@ws1-wfsAA-spA1.snap | 4 +- ...target_output_and_workspace@ws1-wfsAA-spA2.snap | 4 +- ...target_output_and_workspace@ws1-wfsAA-spB1.snap | 6 +- ...target_output_and_workspace@ws1-wfsAA-spB2.snap | 6 +- ...target_output_and_workspace@ws1-wfsAN-spA1.snap | 2 +- ...target_output_and_workspace@ws1-wfsAN-spA2.snap | 2 +- ...target_output_and_workspace@ws1-wfsAN-spB1.snap | 4 +- ...target_output_and_workspace@ws1-wfsAN-spB2.snap | 4 +- ...target_output_and_workspace@ws1-wfsB1-spA1.snap | 2 +- ...target_output_and_workspace@ws1-wfsB1-spA2.snap | 2 +- ...target_output_and_workspace@ws1-wfsB1-spB1.snap | 4 +- ...target_output_and_workspace@ws1-wfsB1-spB2.snap | 4 +- ...target_output_and_workspace@ws1-wfsB2-spA1.snap | 2 +- ...target_output_and_workspace@ws1-wfsB2-spA2.snap | 2 +- ...target_output_and_workspace@ws1-wfsB2-spB1.snap | 4 +- ...target_output_and_workspace@ws1-wfsB2-spB2.snap | 4 +- ...target_output_and_workspace@ws1-wfsBN-spA1.snap | 2 +- ...target_output_and_workspace@ws1-wfsBN-spA2.snap | 2 +- ...target_output_and_workspace@ws1-wfsBN-spB1.snap | 4 +- ...target_output_and_workspace@ws1-wfsBN-spB2.snap | 4 +- ...target_output_and_workspace@ws1-wfsBU-spA1.snap | 2 +- ...target_output_and_workspace@ws1-wfsBU-spA2.snap | 2 +- ...target_output_and_workspace@ws1-wfsBU-spB1.snap | 4 +- ...target_output_and_workspace@ws1-wfsBU-spB2.snap | 4 +- ...k_target_output_and_workspace@ws2-fsF-spA1.snap | 1 + ...k_target_output_and_workspace@ws2-fsF-spA2.snap | 1 + ...k_target_output_and_workspace@ws2-fsF-spB1.snap | 2 +- ...k_target_output_and_workspace@ws2-fsF-spB2.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsA1-spA1.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsA1-spA2.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsA1-spB1.snap | 4 +- ...et_output_and_workspace@ws2-fsF-wfsA1-spB2.snap | 4 +- ...et_output_and_workspace@ws2-fsF-wfsA2-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsA2-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsA2-spB1.snap | 3 +- ...et_output_and_workspace@ws2-fsF-wfsA2-spB2.snap | 3 +- ...et_output_and_workspace@ws2-fsF-wfsAA-spA1.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsAA-spA2.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsAA-spB1.snap | 4 +- ...et_output_and_workspace@ws2-fsF-wfsAA-spB2.snap | 4 +- ...et_output_and_workspace@ws2-fsF-wfsAN-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsAN-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsAN-spB1.snap | 3 +- ...et_output_and_workspace@ws2-fsF-wfsAN-spB2.snap | 3 +- ...et_output_and_workspace@ws2-fsF-wfsB1-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsB1-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsB1-spB1.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsB1-spB2.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsB2-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsB2-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsB2-spB1.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsB2-spB2.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsBN-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsBN-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsBN-spB1.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsBN-spB2.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsBU-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsBU-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsF-wfsBU-spB1.snap | 2 +- ...et_output_and_workspace@ws2-fsF-wfsBU-spB2.snap | 2 +- ...k_target_output_and_workspace@ws2-fsT-spA1.snap | 1 + ...k_target_output_and_workspace@ws2-fsT-spA2.snap | 1 + ...k_target_output_and_workspace@ws2-fsT-spB1.snap | 3 +- ...k_target_output_and_workspace@ws2-fsT-spB2.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsA1-spA1.snap | 2 +- ...et_output_and_workspace@ws2-fsT-wfsA1-spA2.snap | 2 +- ...et_output_and_workspace@ws2-fsT-wfsA1-spB1.snap | 4 +- ...et_output_and_workspace@ws2-fsT-wfsA1-spB2.snap | 4 +- ...et_output_and_workspace@ws2-fsT-wfsA2-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsA2-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsA2-spB1.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsA2-spB2.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsAA-spA1.snap | 2 +- ...et_output_and_workspace@ws2-fsT-wfsAA-spA2.snap | 2 +- ...et_output_and_workspace@ws2-fsT-wfsAA-spB1.snap | 4 +- ...et_output_and_workspace@ws2-fsT-wfsAA-spB2.snap | 4 +- ...et_output_and_workspace@ws2-fsT-wfsAN-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsAN-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsAN-spB1.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsAN-spB2.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsB1-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsB1-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsB1-spB1.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsB1-spB2.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsB2-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsB2-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsB2-spB1.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsB2-spB2.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsBN-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsBN-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsBN-spB1.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsBN-spB2.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsBU-spA1.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsBU-spA2.snap | 1 + ...et_output_and_workspace@ws2-fsT-wfsBU-spB1.snap | 3 +- ...et_output_and_workspace@ws2-fsT-wfsBU-spB2.snap | 3 +- ...get_output_and_workspace@ws2-out1-fsF-spA1.snap | 1 + ...get_output_and_workspace@ws2-out1-fsF-spA2.snap | 1 + ...get_output_and_workspace@ws2-out1-fsF-spB1.snap | 2 +- ...get_output_and_workspace@ws2-out1-fsF-spB2.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsA1-spA1.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsA1-spA2.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsA1-spB1.snap | 4 +- ...tput_and_workspace@ws2-out1-fsF-wfsA1-spB2.snap | 4 +- ...tput_and_workspace@ws2-out1-fsF-wfsA2-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsA2-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsA2-spB1.snap | 3 +- ...tput_and_workspace@ws2-out1-fsF-wfsA2-spB2.snap | 3 +- ...tput_and_workspace@ws2-out1-fsF-wfsAA-spA1.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsAA-spA2.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsAA-spB1.snap | 4 +- ...tput_and_workspace@ws2-out1-fsF-wfsAA-spB2.snap | 4 +- ...tput_and_workspace@ws2-out1-fsF-wfsAN-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsAN-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsAN-spB1.snap | 3 +- ...tput_and_workspace@ws2-out1-fsF-wfsAN-spB2.snap | 3 +- ...tput_and_workspace@ws2-out1-fsF-wfsB1-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsB1-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsB1-spB1.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsB1-spB2.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsB2-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsB2-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsB2-spB1.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsB2-spB2.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsBN-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsBN-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsBN-spB1.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsBN-spB2.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsBU-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsBU-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsF-wfsBU-spB1.snap | 2 +- ...tput_and_workspace@ws2-out1-fsF-wfsBU-spB2.snap | 2 +- ...get_output_and_workspace@ws2-out1-fsT-spA1.snap | 1 + ...get_output_and_workspace@ws2-out1-fsT-spA2.snap | 1 + ...get_output_and_workspace@ws2-out1-fsT-spB1.snap | 3 +- ...get_output_and_workspace@ws2-out1-fsT-spB2.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsA1-spA1.snap | 2 +- ...tput_and_workspace@ws2-out1-fsT-wfsA1-spA2.snap | 2 +- ...tput_and_workspace@ws2-out1-fsT-wfsA1-spB1.snap | 4 +- ...tput_and_workspace@ws2-out1-fsT-wfsA1-spB2.snap | 4 +- ...tput_and_workspace@ws2-out1-fsT-wfsA2-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsA2-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsA2-spB1.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsA2-spB2.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsAA-spA1.snap | 2 +- ...tput_and_workspace@ws2-out1-fsT-wfsAA-spA2.snap | 2 +- ...tput_and_workspace@ws2-out1-fsT-wfsAA-spB1.snap | 4 +- ...tput_and_workspace@ws2-out1-fsT-wfsAA-spB2.snap | 4 +- ...tput_and_workspace@ws2-out1-fsT-wfsAN-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsAN-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsAN-spB1.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsAN-spB2.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsB1-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsB1-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsB1-spB1.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsB1-spB2.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsB2-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsB2-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsB2-spB1.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsB2-spB2.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsBN-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsBN-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsBN-spB1.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsBN-spB2.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsBU-spA1.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsBU-spA2.snap | 1 + ...tput_and_workspace@ws2-out1-fsT-wfsBU-spB1.snap | 3 +- ...tput_and_workspace@ws2-out1-fsT-wfsBU-spB2.snap | 3 +- ..._target_output_and_workspace@ws2-out1-spA1.snap | 1 + ..._target_output_and_workspace@ws2-out1-spA2.snap | 1 + ..._target_output_and_workspace@ws2-out1-spB1.snap | 2 +- ..._target_output_and_workspace@ws2-out1-spB2.snap | 2 +- ...t_output_and_workspace@ws2-out1-wfsA1-spA1.snap | 2 +- ...t_output_and_workspace@ws2-out1-wfsA1-spA2.snap | 2 +- ...t_output_and_workspace@ws2-out1-wfsA1-spB1.snap | 4 +- ...t_output_and_workspace@ws2-out1-wfsA1-spB2.snap | 4 +- ...t_output_and_workspace@ws2-out1-wfsA2-spA1.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsA2-spA2.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsA2-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsA2-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsAA-spA1.snap | 2 +- ...t_output_and_workspace@ws2-out1-wfsAA-spA2.snap | 2 +- ...t_output_and_workspace@ws2-out1-wfsAA-spB1.snap | 4 +- ...t_output_and_workspace@ws2-out1-wfsAA-spB2.snap | 4 +- ...t_output_and_workspace@ws2-out1-wfsAN-spA1.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsAN-spA2.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsAN-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsAN-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsB1-spA1.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsB1-spA2.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsB1-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsB1-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsB2-spA1.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsB2-spA2.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsB2-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsB2-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsBN-spA1.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsBN-spA2.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsBN-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsBN-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out1-wfsBU-spA1.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsBU-spA2.snap | 1 + ...t_output_and_workspace@ws2-out1-wfsBU-spB1.snap | 2 +- ...t_output_and_workspace@ws2-out1-wfsBU-spB2.snap | 2 +- ...get_output_and_workspace@ws2-out2-fsF-spA1.snap | 1 + ...get_output_and_workspace@ws2-out2-fsF-spA2.snap | 1 + ...get_output_and_workspace@ws2-out2-fsF-spB1.snap | 2 +- ...get_output_and_workspace@ws2-out2-fsF-spB2.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsA1-spA1.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsA1-spA2.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsA1-spB1.snap | 4 +- ...tput_and_workspace@ws2-out2-fsF-wfsA1-spB2.snap | 4 +- ...tput_and_workspace@ws2-out2-fsF-wfsA2-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsA2-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsA2-spB1.snap | 3 +- ...tput_and_workspace@ws2-out2-fsF-wfsA2-spB2.snap | 3 +- ...tput_and_workspace@ws2-out2-fsF-wfsAA-spA1.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsAA-spA2.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsAA-spB1.snap | 4 +- ...tput_and_workspace@ws2-out2-fsF-wfsAA-spB2.snap | 4 +- ...tput_and_workspace@ws2-out2-fsF-wfsAN-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsAN-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsAN-spB1.snap | 3 +- ...tput_and_workspace@ws2-out2-fsF-wfsAN-spB2.snap | 3 +- ...tput_and_workspace@ws2-out2-fsF-wfsB1-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsB1-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsB1-spB1.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsB1-spB2.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsB2-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsB2-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsB2-spB1.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsB2-spB2.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsBN-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsBN-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsBN-spB1.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsBN-spB2.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsBU-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsBU-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsF-wfsBU-spB1.snap | 2 +- ...tput_and_workspace@ws2-out2-fsF-wfsBU-spB2.snap | 2 +- ...get_output_and_workspace@ws2-out2-fsT-spA1.snap | 1 + ...get_output_and_workspace@ws2-out2-fsT-spA2.snap | 1 + ...get_output_and_workspace@ws2-out2-fsT-spB1.snap | 3 +- ...get_output_and_workspace@ws2-out2-fsT-spB2.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsA1-spA1.snap | 2 +- ...tput_and_workspace@ws2-out2-fsT-wfsA1-spA2.snap | 2 +- ...tput_and_workspace@ws2-out2-fsT-wfsA1-spB1.snap | 4 +- ...tput_and_workspace@ws2-out2-fsT-wfsA1-spB2.snap | 4 +- ...tput_and_workspace@ws2-out2-fsT-wfsA2-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsA2-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsA2-spB1.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsA2-spB2.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsAA-spA1.snap | 2 +- ...tput_and_workspace@ws2-out2-fsT-wfsAA-spA2.snap | 2 +- ...tput_and_workspace@ws2-out2-fsT-wfsAA-spB1.snap | 4 +- ...tput_and_workspace@ws2-out2-fsT-wfsAA-spB2.snap | 4 +- ...tput_and_workspace@ws2-out2-fsT-wfsAN-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsAN-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsAN-spB1.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsAN-spB2.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsB1-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsB1-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsB1-spB1.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsB1-spB2.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsB2-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsB2-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsB2-spB1.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsB2-spB2.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsBN-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsBN-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsBN-spB1.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsBN-spB2.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsBU-spA1.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsBU-spA2.snap | 1 + ...tput_and_workspace@ws2-out2-fsT-wfsBU-spB1.snap | 3 +- ...tput_and_workspace@ws2-out2-fsT-wfsBU-spB2.snap | 3 +- ..._target_output_and_workspace@ws2-out2-spA1.snap | 1 + ..._target_output_and_workspace@ws2-out2-spA2.snap | 1 + ..._target_output_and_workspace@ws2-out2-spB1.snap | 2 +- ..._target_output_and_workspace@ws2-out2-spB2.snap | 2 +- ...t_output_and_workspace@ws2-out2-wfsA1-spA1.snap | 2 +- ...t_output_and_workspace@ws2-out2-wfsA1-spA2.snap | 2 +- ...t_output_and_workspace@ws2-out2-wfsA1-spB1.snap | 4 +- ...t_output_and_workspace@ws2-out2-wfsA1-spB2.snap | 4 +- ...t_output_and_workspace@ws2-out2-wfsA2-spA1.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsA2-spA2.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsA2-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsA2-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsAA-spA1.snap | 2 +- ...t_output_and_workspace@ws2-out2-wfsAA-spA2.snap | 2 +- ...t_output_and_workspace@ws2-out2-wfsAA-spB1.snap | 4 +- ...t_output_and_workspace@ws2-out2-wfsAA-spB2.snap | 4 +- ...t_output_and_workspace@ws2-out2-wfsAN-spA1.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsAN-spA2.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsAN-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsAN-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsB1-spA1.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsB1-spA2.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsB1-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsB1-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsB2-spA1.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsB2-spA2.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsB2-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsB2-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsBN-spA1.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsBN-spA2.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsBN-spB1.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsBN-spB2.snap | 3 +- ...t_output_and_workspace@ws2-out2-wfsBU-spA1.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsBU-spA2.snap | 1 + ...t_output_and_workspace@ws2-out2-wfsBU-spB1.snap | 2 +- ...t_output_and_workspace@ws2-out2-wfsBU-spB2.snap | 2 +- ...check_target_output_and_workspace@ws2-spA1.snap | 1 + ...check_target_output_and_workspace@ws2-spA2.snap | 1 + ...check_target_output_and_workspace@ws2-spB1.snap | 2 +- ...check_target_output_and_workspace@ws2-spB2.snap | 2 +- ...target_output_and_workspace@ws2-wfsA1-spA1.snap | 2 +- ...target_output_and_workspace@ws2-wfsA1-spA2.snap | 2 +- ...target_output_and_workspace@ws2-wfsA1-spB1.snap | 4 +- ...target_output_and_workspace@ws2-wfsA1-spB2.snap | 4 +- ...target_output_and_workspace@ws2-wfsA2-spA1.snap | 1 + ...target_output_and_workspace@ws2-wfsA2-spA2.snap | 1 + ...target_output_and_workspace@ws2-wfsA2-spB1.snap | 3 +- ...target_output_and_workspace@ws2-wfsA2-spB2.snap | 3 +- ...target_output_and_workspace@ws2-wfsAA-spA1.snap | 2 +- ...target_output_and_workspace@ws2-wfsAA-spA2.snap | 2 +- ...target_output_and_workspace@ws2-wfsAA-spB1.snap | 4 +- ...target_output_and_workspace@ws2-wfsAA-spB2.snap | 4 +- ...target_output_and_workspace@ws2-wfsAN-spA1.snap | 1 + ...target_output_and_workspace@ws2-wfsAN-spA2.snap | 1 + ...target_output_and_workspace@ws2-wfsAN-spB1.snap | 3 +- ...target_output_and_workspace@ws2-wfsAN-spB2.snap | 3 +- ...target_output_and_workspace@ws2-wfsB1-spA1.snap | 1 + ...target_output_and_workspace@ws2-wfsB1-spA2.snap | 1 + ...target_output_and_workspace@ws2-wfsB1-spB1.snap | 3 +- ...target_output_and_workspace@ws2-wfsB1-spB2.snap | 3 +- ...target_output_and_workspace@ws2-wfsB2-spA1.snap | 1 + ...target_output_and_workspace@ws2-wfsB2-spA2.snap | 1 + ...target_output_and_workspace@ws2-wfsB2-spB1.snap | 3 +- ...target_output_and_workspace@ws2-wfsB2-spB2.snap | 3 +- ...target_output_and_workspace@ws2-wfsBN-spA1.snap | 1 + ...target_output_and_workspace@ws2-wfsBN-spA2.snap | 1 + ...target_output_and_workspace@ws2-wfsBN-spB1.snap | 3 +- ...target_output_and_workspace@ws2-wfsBN-spB2.snap | 3 +- ...target_output_and_workspace@ws2-wfsBU-spA1.snap | 1 + ...target_output_and_workspace@ws2-wfsBU-spA2.snap | 1 + ...target_output_and_workspace@ws2-wfsBU-spB1.snap | 2 +- ...target_output_and_workspace@ws2-wfsBU-spB2.snap | 2 +- src/window/mod.rs | 35 +- 986 files changed, 3076 insertions(+), 1206 deletions(-) create mode 100644 src/layout/floating.rs diff --git a/niri-config/src/lib.rs b/niri-config/src/lib.rs index fc1fdfd4..8d755c78 100644 --- a/niri-config/src/lib.rs +++ b/niri-config/src/lib.rs @@ -983,6 +983,8 @@ pub struct WindowRule { pub open_maximized: Option, #[knuffel(child, unwrap(argument))] pub open_fullscreen: Option, + #[knuffel(child, unwrap(argument))] + pub open_floating: Option, // Rules applied dynamically. #[knuffel(child, unwrap(argument))] @@ -1254,6 +1256,10 @@ pub enum Action { MoveWorkspaceToMonitorRight, MoveWorkspaceToMonitorDown, MoveWorkspaceToMonitorUp, + ToggleWindowFloating, + #[knuffel(skip)] + ToggleWindowFloatingById(u64), + SwitchFocusBetweenFloatingAndTiling, } impl From for Action { @@ -1386,6 +1392,13 @@ impl From for Action { niri_ipc::Action::ToggleDebugTint {} => Self::ToggleDebugTint, niri_ipc::Action::DebugToggleOpaqueRegions {} => Self::DebugToggleOpaqueRegions, niri_ipc::Action::DebugToggleDamage {} => Self::DebugToggleDamage, + niri_ipc::Action::ToggleWindowFloating { id: None } => Self::ToggleWindowFloating, + niri_ipc::Action::ToggleWindowFloating { id: Some(id) } => { + Self::ToggleWindowFloatingById(id) + } + niri_ipc::Action::SwitchFocusBetweenFloatingAndTiling {} => { + Self::SwitchFocusBetweenFloatingAndTiling + } } } } @@ -3128,6 +3141,7 @@ mod tests { open-on-output "eDP-1" open-maximized true open-fullscreen false + open-floating false focus-ring { off @@ -3406,6 +3420,7 @@ mod tests { open_on_output: Some("eDP-1".to_owned()), open_maximized: Some(true), open_fullscreen: Some(false), + open_floating: Some(false), focus_ring: BorderRule { off: true, width: Some(FloatOrInt(3.)), diff --git a/niri-ipc/src/lib.rs b/niri-ipc/src/lib.rs index 3df0eb4f..6bbc00f2 100644 --- a/niri-ipc/src/lib.rs +++ b/niri-ipc/src/lib.rs @@ -430,6 +430,16 @@ pub enum Action { DebugToggleOpaqueRegions {}, /// Toggle visualization of output damage. DebugToggleDamage {}, + /// Move the focused window between the floating and the tiling layout. + ToggleWindowFloating { + /// Id of the window to move. + /// + /// If `None`, uses the focused window. + #[cfg_attr(feature = "clap", arg(long))] + id: Option, + }, + /// Toggles the focus between the floating and the tiling layout. + SwitchFocusBetweenFloatingAndTiling {}, } /// Change in window or column size. diff --git a/niri-visual-tests/src/cases/layout.rs b/niri-visual-tests/src/cases/layout.rs index c2aee7fd..3a943503 100644 --- a/niri-visual-tests/src/cases/layout.rs +++ b/niri-visual-tests/src/cases/layout.rs @@ -159,11 +159,20 @@ impl Layout { fn add_window(&mut self, mut window: TestWindow, width: Option) { let ws = self.layout.active_workspace().unwrap(); - window.request_size(ws.new_window_size(width, window.rules()), false, None); + window.request_size( + ws.new_window_size(width, false, window.rules()), + false, + None, + ); window.communicate(); - self.layout - .add_window(window.clone(), width, false, ActivateWindow::default()); + self.layout.add_window( + window.clone(), + width, + false, + false, + ActivateWindow::default(), + ); self.windows.push(window); } @@ -174,11 +183,15 @@ impl Layout { width: Option, ) { let ws = self.layout.active_workspace().unwrap(); - window.request_size(ws.new_window_size(width, window.rules()), false, None); + window.request_size( + ws.new_window_size(width, false, window.rules()), + false, + None, + ); window.communicate(); self.layout - .add_window_right_of(right_of.id(), window.clone(), width, false); + .add_window_right_of(right_of.id(), window.clone(), width, false, false); self.windows.push(window); } diff --git a/resources/default-config.kdl b/resources/default-config.kdl index aa454479..ca612fc1 100644 --- a/resources/default-config.kdl +++ b/resources/default-config.kdl @@ -474,6 +474,10 @@ binds { Mod+Shift+Minus { set-window-height "-10%"; } Mod+Shift+Equal { set-window-height "+10%"; } + // Move the focused window between the floating and the tiling layout. + Mod+V { toggle-window-floating; } + M