diff options
| author | erstarr <253168930+erstarr@users.noreply.github.com> | 2026-05-08 20:34:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-08 19:34:54 +0100 |
| commit | 1a164704e7596d743dfeade3946385997254b019 (patch) | |
| tree | 6f2bdb0ea601f7ac0ee5f977b5881d9e2042be8b /src | |
| parent | 544268931a2b5953f021c129d13387f06b625080 (diff) | |
keybind/actions: `cycle_next` w/ `tiled = true` doesn't choose only tiled windows (#14164)
* fix tiling only selection: actually select only tiling when chosen
* clang-format
* test: cycle_next float only and tiled only
Diffstat (limited to 'src')
| -rw-r--r-- | src/config/shared/actions/ConfigActions.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/config/shared/actions/ConfigActions.cpp b/src/config/shared/actions/ConfigActions.cpp index 52b2a359..5fc16308 100644 --- a/src/config/shared/actions/ConfigActions.cpp +++ b/src/config/shared/actions/ConfigActions.cpp @@ -1665,11 +1665,15 @@ ActionResult Actions::cycleNext(const bool next, std::optional<bool> onlyTiled, } } - std::optional<bool> floatStatus = {}; - if (onlyFloating.value_or(false)) - floatStatus = true; + // true = floating + // false = tiling + // either-or = either-or + std::optional<bool> tileOrFloatOnly = std::nullopt; - const auto& cycled = g_pCompositor->getWindowCycle(window, true, floatStatus, false, !next, window->m_workspace && window->m_workspace->m_hasFullscreenWindow); + if (onlyTiled.value_or(false) != onlyFloating.value_or(false)) + tileOrFloatOnly = onlyFloating.value_or(false); + + const auto& cycled = g_pCompositor->getWindowCycle(window, true, tileOrFloatOnly, false, !next, window->m_workspace && window->m_workspace->m_hasFullscreenWindow); switchToWindow(cycled); |
