summaryrefslogtreecommitdiff
path: root/src/layout/IHyprLayout.cpp
diff options
context:
space:
mode:
authorVirt <41426325+VirtCode@users.noreply.github.com>2025-04-06 23:41:27 +0200
committerGitHub <noreply@github.com>2025-04-06 23:41:27 +0200
commit51838fb5f5b5b03bca99b324fb1f6494d3854f89 (patch)
treeec68bde21136d0d0bd7131019c56c7d66571cd60 /src/layout/IHyprLayout.cpp
parent85f874d10f97b8bb35e79a9a219b0217e2938794 (diff)
layout: properly track floating window position (#9937)
Diffstat (limited to 'src/layout/IHyprLayout.cpp')
-rw-r--r--src/layout/IHyprLayout.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/layout/IHyprLayout.cpp b/src/layout/IHyprLayout.cpp
index b353a50c..a0f15f5c 100644
--- a/src/layout/IHyprLayout.cpp
+++ b/src/layout/IHyprLayout.cpp
@@ -618,6 +618,8 @@ void IHyprLayout::onMouseMove(const Vector2D& mousePos) {
DRAGGINGWINDOW->sendWindowSize();
}
+ DRAGGINGWINDOW->m_vPosition = wb.pos();
+
} else if (g_pInputManager->dragMode == MBIND_RESIZE || g_pInputManager->dragMode == MBIND_RESIZE_FORCE_RATIO || g_pInputManager->dragMode == MBIND_RESIZE_BLOCK_RATIO) {
if (DRAGGINGWINDOW->m_bIsFloating) {
@@ -689,6 +691,9 @@ void IHyprLayout::onMouseMove(const Vector2D& mousePos) {
DRAGGINGWINDOW->m_vRealPosition->setValueAndWarp(wb.pos());
DRAGGINGWINDOW->sendWindowSize();
}
+
+ DRAGGINGWINDOW->m_vPosition = wb.pos();
+ DRAGGINGWINDOW->m_vSize = wb.size();
} else {
resizeActiveWindow(TICKDELTA, m_eGrabbedCorner, DRAGGINGWINDOW);
}
@@ -780,8 +785,8 @@ void IHyprLayout::changeWindowFloatingMode(PHLWINDOW pWindow) {
*pWindow->m_vRealPosition = wb.pos();
*pWindow->m_vRealSize = wb.size();
- pWindow->m_vSize = wb.pos();
- pWindow->m_vPosition = wb.size();
+ pWindow->m_vSize = wb.size();
+ pWindow->m_vPosition = wb.pos();
g_pHyprRenderer->damageMonitor(pWindow->m_pMonitor.lock());
@@ -810,6 +815,7 @@ void IHyprLayout::moveActiveWindow(const Vector2D& delta, PHLWINDOW pWindow) {
PWINDOW->setAnimationsToMove();
+ PWINDOW->m_vPosition += delta;
*PWINDOW->m_vRealPosition = PWINDOW->m_vRealPosition->goal() + delta;
g_pHyprRenderer->damageWindow(PWINDOW);