Diff
1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
2index 4490844d6365ce65cc819495c326842b56951c7f..7874994dcaf5bad1c1dc869a9aeb355d5f1fdc1e 100644
3--- a/src/Hy3Layout.cpp
4+++ b/src/Hy3Layout.cpp
5@@ -1415,7 +1415,14 @@ void Hy3Layout::shiftWindow(int workspace, ShiftDirection direction, bool once)
6 Debug::log(LOG, "ShiftWindow %p %d", node, direction);
7 if (node == nullptr) return;
8
9- this->shiftOrGetFocus(*node, direction, true, once, false);
10+ if (once && node->parent != nullptr && node->parent->data.as_group.children.size() == 1) {
11+ auto* node2 = node->parent;
12+ Hy3Node::swapData(*node, *node2);
13+ node2->layout->nodes.remove(*node);
14+ node2->recalcSizePosRecursive();
15+ } else {
16+ this->shiftOrGetFocus(*node, direction, true, once, false);
17+ }
18 }
19
20 bool shiftIsForward(ShiftDirection direction) {