summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
authorAqa-Ib <victorcana@gmx.com>2024-10-09 11:58:49 +0200
committerGitHub <noreply@github.com>2024-10-09 10:58:49 +0100
commit6ae89940c761d4ed4317df0af29e8df41d472091 (patch)
tree78e2e9842e971ae5cf710f9b9e159058fafa34ad /src/render
parent3d28879c2640cdb6e8426127692240100793bfef (diff)
layout: add merge_floated_into_tiled_on_groupbar (#8042)
Diffstat (limited to 'src/render')
-rw-r--r--src/render/decorations/CHyprGroupBarDecoration.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/render/decorations/CHyprGroupBarDecoration.cpp b/src/render/decorations/CHyprGroupBarDecoration.cpp
index ef6c81e6..eca3f2cb 100644
--- a/src/render/decorations/CHyprGroupBarDecoration.cpp
+++ b/src/render/decorations/CHyprGroupBarDecoration.cpp
@@ -402,9 +402,15 @@ bool CHyprGroupBarDecoration::onBeginWindowDragOnDeco(const Vector2D& pos) {
}
bool CHyprGroupBarDecoration::onEndWindowDragOnDeco(const Vector2D& pos, PHLWINDOW pDraggedWindow) {
- static auto PSTACKED = CConfigValue<Hyprlang::INT>("group:groupbar:stacked");
- static auto PDRAGINTOGROUP = CConfigValue<Hyprlang::INT>("group:drag_into_group");
- if (!pDraggedWindow->canBeGroupedInto(m_pWindow.lock()) || (*PDRAGINTOGROUP != 1 && *PDRAGINTOGROUP != 2))
+ static auto PSTACKED = CConfigValue<Hyprlang::INT>("group:groupbar:stacked");
+ static auto PDRAGINTOGROUP = CConfigValue<Hyprlang::INT>("group:drag_into_group");
+ static auto PMERGEFLOATEDINTOTILEDONGROUPBAR = CConfigValue<Hyprlang::INT>("group:merge_floated_into_tiled_on_groupbar");
+
+ bool denied = false;
+ if (!m_pWindow->m_bIsFloating && !pDraggedWindow->m_bDraggingTiled && !*PMERGEFLOATEDINTOTILEDONGROUPBAR)
+ denied = true;
+
+ if (!pDraggedWindow->canBeGroupedInto(m_pWindow.lock()) || (*PDRAGINTOGROUP != 1 && *PDRAGINTOGROUP != 2) || denied)
return false;
const float BARRELATIVE = *PSTACKED ? pos.y - assignedBoxGlobal().y - (m_fBarHeight + BAR_PADDING_OUTER_VERT) / 2 : pos.x - assignedBoxGlobal().x - m_fBarWidth / 2;