Diff
1diff --git a/src/Hy3Layout.cpp b/src/Hy3Layout.cpp
2index 10d86d5e3d99673575dff70e5af0f912d3f290eb..ac106b078ae1836d2f5c07d4ff6d86e1e6474e94 100644
3--- a/src/Hy3Layout.cpp
4+++ b/src/Hy3Layout.cpp
5@@ -1442,10 +1442,15 @@ void Hy3Layout::shiftWindow(int workspace, ShiftDirection direction, bool once)
6 if (node == nullptr) return;
7
8 if (once && node->parent != nullptr && node->parent->data.as_group.children.size() == 1) {
9- auto* node2 = node->parent;
10- Hy3Node::swapData(*node, *node2);
11- node2->layout->nodes.remove(*node);
12- node2->recalcSizePosRecursive();
13+ if (node->parent->parent == nullptr) {
14+ node->parent->data.as_group.layout = Hy3GroupLayout::SplitH;
15+ node->parent->recalcSizePosRecursive();
16+ } else {
17+ auto* node2 = node->parent;
18+ Hy3Node::swapData(*node, *node2);
19+ node2->layout->nodes.remove(*node);
20+ node2->recalcSizePosRecursive();
21+ }
22 } else {
23 this->shiftOrGetFocus(*node, direction, true, once, false);
24 }